我知道的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
所以我認爲,
繼承:我們需要重寫子類中的方法
抽象類:在方法名把抽象的關鍵詞,需要實現方法子類
所以繼承和抽象類是一樣的不管抽象關鍵字因此,我們可以使用繼承來實現抽象類,這裏只是方法簽名更改類(這是我的信念)。
有什麼重要區別?
對不起,我忘了提到抽象類,在這裏我將講述抽象類和繼承之間的主要區別 –