我知道的OOP概念[继承,抽象,封装,多态]继承和抽象类有什么区别?
我们使用继承中的父子关系案[儿童可以拥有母公司拥有的所有功能,并可以将自身添加更多的功能基本面太]
而我们使用抽象类(在java中)为类的方法的默认实现的部分集合,它也可以通过简单的继承来实现。
看下面的例子,这使我的观点清晰。
继承:
父类
public class Parent {
// This method will remain same for all child classes.No need to override
public void abc() {
System.out.println("Parent here");
}
// This methods need to be overridden from child class
public int getROI() {
return 0;
}
}
儿童类
public class Child extends Parent{
@Override
public int getROI(){
return 5;
}
public static void main(String[] args) {
Child child =new Child();
child.abc();
System.out.println(child.getROI());
}
}
抽象类:
父类
abstract class Parent {
// This method will remain same for all child classes.No need to override
public void abc() {
System.out.println("Parent here");
}
// This methods need to be implemented from child class
public abstract int getROI();
}
儿童类
public class Child extends Parent{
public int getROI(){
return 5;
}
public static void main(String[] args) {
Child child =new Child();
child.abc();
System.out.println(child.getROI());
}
}
对于上述程序O/P将是相同的。
O/P:
Parent here
5
所以我认为,
继承:我们需要重写子类中的方法
抽象类:在方法名把抽象的关键词,需要实现方法子类
所以继承和抽象类是一样的不管抽象关键字因此,我们可以使用继承来实现抽象类,这里只是方法签名更改类(这是我的信念)。
有什么重要区别?
对不起,我忘了提到抽象类,在这里我将讲述抽象类和继承之间的主要区别 –