final的用法:
final可以修類,該類不能繼承
fianl可以修飾成員方法,該方法不能被重寫
2. 構造方法:
1)子類中 構造方法,默認的訪問父類中的無參構造方法;
2)父類中的無參構造沒有提供,子類如何訪問父類中的構造方法?
方式1:父類中提供無參構造方法
方式2:通過子類中的super(".."),訪問父類中的有參構造
方式3:在本類中可以通過其他構造方法去訪問父類中構造方法:
this(); final可以變量(成員/局部變量),這個時候變量就變成了一個常量!(常用)
3.
方法重載和方法重寫的區別?
overload:在同一個類中,方法名相同,參數列表不同(參數個數/參數類型),與返回值沒有關係
override:子類的方法和父類的一模一樣,連返回值都一樣.
4.抽象的概述:將功能定義抽象,那麼該類就是抽象類!
動物有很多,應該將動物類定義爲一個抽象類;動物本身不是一個具體動物,
貓和狗具體的事物,貓和狗和吃的方法不一樣,在動物類中把吃的這個方法,定義爲抽象方法,那麼這個類就必須定義爲抽象類;
java針對將一個類定義爲抽象----------->abstract:抽象的意思
抽象類的特點:
一個類中可以抽象方法.也可以有非抽象方法
抽象方法的格式:
public abstract void method();
抽象類的子類特點:
子類可以是抽象類,沒有任何意義!抽象類不能直接實例化,就不能使用調用調用方法!
子類是非抽象類,必須要重寫父類中的抽象方法,然後去使用子類的自己的功能
父類是一個抽象類,如果要創建對象就必須通過子類進行實現!
父類進行實例化只能間接子類進行實例化!
5.抽象類中的成員的特點:
成員變量:可以是變量,也可以是常量!(自定義常量)
成員方法:可以是抽象方法,也可以是非抽象方法
構造方法:一個抽象類中是可以有構造方法的!
6.多態:指的是一個事物,在不同時刻狀態的一個體現!
水:固態,氣態,液態;
Dog d = new Dog();//創建了一個狗類的對象
Animal a = new Dog();狗是一個動物
= new cat();
多態的前提條件:
1)必須有繼承關係
2)繼承一個類的同時,子類中必須有方法重寫(使用子類中的方法去覆蓋父類中的方法)
動物類:吃和睡的功能,子類重寫父類的方法的原因:使用子類中有具體的功能..
3)父類的引用指向子類對象
繼承的時候:使用子類的:Zi z = new Zi() ;
Fu f = new Zi() ;將f代表的父類引用指向堆內存的子類的對象!
向上轉型!
多態中的成員訪問特點:
成員變量:
編譯看左,運行看左!
非靜態成員方法:
編譯看左,運行看右
子類中的方法會覆蓋掉父類中的方法
靜態的成員方法:
編譯看左邊,運行看左邊
(靜態和類有關係)
構造方法:始終是給對象進行初始化的!..