Day11多态部分-1 【1.1 多态的体现】
【1.1 多態的體現】
-
多態的好處:提高了擴展性(提高代碼的共用性);
1.定義:某一類事物的多種存在形態:
java語言中含有【方法重載】和【對象多態】兩種形式的多態
貓 x = new 貓()
動物 x = new 貓()//new 貓()
來了一只真實的小貓 我說 這動物不錯,
new 的這個實體既具備貓的類型,也具備動物的類型
但是有個前提,貓必須是動物的一種;
2.當類與類產生關系:
那么這個實體還具備其他類型,這個事物存在多種形態-->多態;
多態我們強調的是在java中,對象上的體現;
3.其實函數也具備多態性,重載,同一個名字,體現形態不一樣
(方法的重載也是多態的一種);
- + -
api里面所有的類和接口關系都是
以面向對象的幾大特征為開發基準的,不了解的話連api都看不到;
//這叫前期預先調用功能,后期定義子類去實現功能,并把子類作為參數,傳遞進來,實現了后期拓展性
-
public static void main(String[] args) {
?Animal a1 =new Dog();//繼承了動物,都是動物的一種,即是貓也是動物
??Animal a2 =new Cat();
??test(a1);//3.方法名,將對象a1傳入
??test(a2);//傳入什么對象輸出什么方法
??Animal a3 =new Pig();//因為繼承了父類,所以不用寫重載方法,用回引用Animal的重載方法即可
??test(a3);
//多態的好處:提高程序的拓展性
//這叫前期預先調用功能,后期定義子類去實現功能,并把子類作為參數,傳遞進來,實現了后期拓展性
public static void test(Animal sx){//1.Animal引用sx對象
sx.eat();//2.對象引用Animal的eat方法
}
}
abstract?class Animal{//抽象的作用強制子類重寫方法
abstract void eat();
}
class Cat extends?Animal{
public void eat(){
System.out.println("吃魚(重寫Animal的eat方法)");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("吃骨頭(重寫Animal的eat方法)");
}
}
//--------------百年后出現了另一種動物 豬
class Pig extends Animal{
public void eat() {
System.out.println("吃飼料(重寫Animal的eat方法)");
}
public void gongdi(){
System.out.println("拱地");
}
}
多態的表現:一個對象在不同的狀態下有多種形態:如你,對妻子來說你是丈夫,
對老師來說你是學生,對父母來說你是兒子,對老板來說你是員工多態比喻:事物的多種存在:貓是動物也叫貓,
其它有個名字叫小明,那么我叫它貓-動物-小明都三個名都是指它 ? ??
-
- + -
總結
以上是生活随笔為你收集整理的Day11多态部分-1 【1.1 多态的体现】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [基础题] * 9.(*)设计一个St
- 下一篇: Day11多态部分-2 【1.2 多态的