回顧:許可權修飾符: public -> protected -> (default) ->private
重寫:1.方法名和引數列表一致
2.子類中重寫的方法, 返回值型別[小於等於]父類返回值型別
3.許可權修飾符,[大於等於]父類方法的許可權
類: 類不能被繼承
方法: 方法不能被重寫
變數: 常量, 不能被修改, 必須初始化
常見的final類:
string math
string不可變的: charsequence - 字串行 - 字元陣列
底層實現: 字元陣列 -> 位元組陣列 byte value
final value = 其他值
string str = 「hello」;
str = 「hi」;
介面:1.公共的抽象方法
2.公共的靜態常量 public static final
3.公共的預設方法
4.公共的靜態方法[私有的]
5.私有的方法
使用介面:
實現類 implements 介面
實現所有的抽象方法, 預設方法[可以選擇性重寫]
建立實現類物件, 呼叫方法
類和介面叫做多實現, 要重寫/覆蓋[實現]所有的介面的所有抽象方法
和 重複的預設方法
類和類 叫做單繼承, 父類中的方法和父介面中的預設方法重複了, 優先呼叫父類中的方法
zi extends fu implements inte***cea
介面作為方法引數, 介面作為返回值:
具體使用的都是介面的實現類物件
多型的前提:
class myinte***ceaimpl extends object implmenets myinte***cea
myinte***cea a = new myinte***ceaimpl() -> 向上造型
object o = new myinte***ceaimpl() -> 向上造型
fu fu = new zi();
animal a = new cat();
父型別引用 指向 子型別物件 -> 向上造型
父型別 a = new 子型別物件();
介面型別 a = new 實現類物件();
編譯器 看 = 左邊型別, 執行時jvm 看 = 右邊型別
左邊型別決定了變數 能呼叫哪些方法,
右邊型別決定了最終使用的方法是哪個 - 優先呼叫自己重寫過的
口訣: 編譯看左邊, 執行看右邊
提前得知, 引用 到底是什麼型別的物件
animal -> abstract void eat()
cat -> void catchmouse() {}
dog -> void watchhouse() {}
多型: animal a1 = new cat();
animal a2 = new dog();
classcastexception: 型別轉換異常
解決方案: 轉換之前先判斷引用 實際上是不是要轉換的型別物件
引用a instanceof 子型別 => boolean
問 a 實際上是不是子型別物件
人體類 心臟類
車類 發動機類
種類: 成員內部類,靜態內部類,區域性內部類[匿名內部類]
成員內部類: 許可權 public,protected,(default),private
語法:public class outer
}使用:
內部類中, 可以隨意使用外部類成員
外部類中, 使用內部類成員時需要建立內部類物件
無關類中, 使用內部類成員
1.間接呼叫, 在外部類方法中呼叫內部類方法
main方法中, 呼叫外部類方法
2.直接呼叫, 需要建立內部類物件
外部類.內部類 a = new 外部類().new 內部類();
內部類和外部類有同名成員變數
外部類的成員變數: 外部類.this.變數
內部類的成員變數: this.變數
區域性內部類 : 在方法內部定義類, 只在方法中有效
在區域性內部類中, 使用區域性變數, 必須是final的
jdk8 後, 區域性變數事實上沒有發生改變, 那麼final可以省略
一次性的類, 只能用一次
不能使用許可權修飾符
區域性內部類, 需要類只使用一次, 優化 -> 匿名內部類
匿名內部類: 繼承抽象類或實現介面
語法: new 介面/抽象類()
匿名內部類, 只能用一次, new乙個物件
匿名物件, 只能使用一次, 只能呼叫一次方法
注意: 匿名內部類 和 匿名物件 不是一回事 ! ! !
靜態內部類 對比 成員內部類 => 靜態方法 和 成員方法
day08 物件導向 多型
package com.oop.demo07 public class package com.oop.demo07 public class person package com.oop.demo07 public class student extends person public void ...
day08多型和object類
多型 理解為事物存在的多種體現形態 人 男人,女人 動物 貓 狗 類 多個 貓 x new 貓 實體動物 y new 貓 1.多型的體現 父類的引用指向了自己的子類物件 父類的引用可以接收自己的子類物件 2.多型的提前 必須類與類之間有關係,要麼繼承要麼實現 3.多型的好處 多型大大提高了 的擴充套...
Day03 10目標 內部類 匿名內部類
其實是區域性內部類,是乙個沒有名字的區域性內部類。簡化 new 類名 介面 抽象類 形參 1.匿名內部類是乙個沒有名字的內部類。2.匿名內部類一旦寫出來,會自動建立乙個匿名內部類的物件返回。3.匿名內部類相當於是乙個子類型別的物件。匿名內部類是用於簡化 的.匿名內部類一旦寫出來,會自動建立乙個匿名內...