多态,接口,
小細節知識點
1.一個Java文件可以很多其他類但只能有一個主類。
2.final修飾的時候要看清楚修飾的是什么,比如,有的時候修飾的是地址(也就是引用類型),這時候外面的引用指針確定了而已,但是他指向的東西的里面的值可以更改。
3.單繼承的缺點,只能有一個父類。
????????接口可以解決這個缺點。
多態
繼承是前提(有繼承才會父類)
父類引用指向子類對象(子類對象去代替自己的父類)
多態,允許不同類的對像對同一個類的消息做出響應,不同的有對象可以有自己的響應方式
????????就是用子類的對象代替父類,然后可以使用父類的東西,所以沒有子類的屬性都是用父類的,因為方法進行了重寫,所以會調用子類的方法
多態的使用場景
1.直接寫,通過賦值進行接收
2.形參是父類引用,實參是子類對象
3.用父類類型的變量來接收是對象的返回值
4.隱式多態,這個是指這個方法子類沒有,而父類有他調用父類的,這時候不只是繼承,其實已經多態了
如果有this,this是類的第一個成員變量,所以this的類型是這個類的類型,這時候就發生了多態。
其他注意事項:
1.向上轉型,多態
2.向下轉型,類型轉化,強制和隱式,同樣適合引用類型
cast,指向錯誤,向下轉型,
instance of判斷這個父類是不是由這個對象實例化來的,向下轉型
每一個都是實體,不和變量一樣
抽象? abstract
被abstract修飾的類是抽象類,不能實例化對象,但是可以寫構造方法,所以構造方法沒有用了
抽象類里面的抽象方法是沒有方法體,不實現,讓子類實現
抽象類,被abstract修飾的類叫做抽象類
abstract不能修飾變量
子類為了實現父類沒有實現的方法,要不就自己也抽象
被abstract修飾的類就是要繼承的
方法就是來復寫的
final(不能繼承,不能復寫),abstract沖突了,不能一起使用
還不能靜態,因為靜態的方法對象本來就不能引用
private也不能使用,因為私有還怎么繼承
接口的概念
interface關鍵字定義接口
權限修飾符 interface 接口名
來實現Java單繼承的缺點,多實現,接口就是來實現的
impl? implemes實現接口,多實現,逗號分隔,解決了Java單繼承的缺點,可以多實現,用逗號分隔
接口內部
和類對比
在接口內部
所有的常量都是共有的,而且都是靜態常量,所有都要全部大寫
方法都是共有的,static
成員方法,接口內默認抽象方法,還可以有靜態方法,沒有構造方法不能有構造方法
implemens接口實現也需要有重寫,因為沒有實現
接口的實現類必須實現接口的抽象方法,如果沒有實現必須成為抽象類
父類實現對象,多態還可以有義父,干爹new靜態方法接口。
接口的默認方法可以通過實現類調用,
接口可以多繼承,所有的都要實現
總結
- 上一篇: Codeforces 272C Dima
- 下一篇: 计算机辅助项目管理课程方案,计算机辅助项