目錄
1、繼承
1、成員
public類型的成員會被繼承
private 類型的成員不會被繼承
子類是無法覆蓋掉父類的實例變量的。
2、重寫
重寫父類的方法,相當於重新定義該方法。
如果你想要重新定義該方法還想要繼續運行父類該方法的行爲,那麼需要運用super。
3、final
被 final修飾的類和方法不能被繼承。
2、多態-繼承
多態最強的地方就是,引用類型可以是實際對象類型的父類。並且可以將dog實例對象當成父類Animal去操作。
多態還體現在 方法參數(可以傳入父類的子類)和返回類型(返回子類的父類)上。
重載與多態毫無關係。
public class Test3 {
static class Animal{
String name;
private void bark(){
System.out.println("動物叫聲");
}
}
static class Dog extends Animal{
int age;
}
public static void main(String[] args) {
Animal a=new Dog();
a.bark();
}
}
3、多態-抽象
1、抽象類
抽象類不能被初始化,抽象類除了被繼承之外,是沒有用途,沒有值,沒有目的的。
2、抽象方法
抽象的方法代表一定會被重寫,抽象的方法沒有實體!
如果你聲明瞭一個抽象方法,就必須將該類也標記爲抽象的。你不能在非抽象類中擁有抽象方法。
抽象方法的意義:就算無法實現出方法的內容,但還是定義出一組子類共同的協議。------好處就是:多態。
當然你如果不想實現父類的抽象方法,你可以將自身也編程抽象類,將實現的壓力傳給孫子類。
抽象類也可以實現非抽象方法。
abstract static class Animal {
String name;
abstract void bark();
}
abstract static class Dog extends Animal {
abstract void bark();
int age;
public void sleep(){
System.out.println("睡覺");
}
}
Object的主要目的:
- 作爲多態,讓方法可以應對多種類型機制;
- 讓任何對象都有hashCode()等相關方法
4、多態-接口
接口的多態體現在,它可以讓一個類繼承多個來源,是對extends 的擴展。而且多個不同類還可以實現同一個接口,讓這些類都擁有同樣的標準。
實現接口必須實現它的所有方法,因爲接口中的方法都是public和abstract的。