java的多型性

2021-07-27 16:42:39 字數 1677 閱讀 2126

public class duotaitest

* class 子類 extends 父類

* 父類 物件名 = new 子類();

* 2.抽象類多型(還算常用)

* abstract class 父類

* class 子類 extends 父類

* 父類 物件名 = new 子類();

* 3.介面多型(非常常用)

* inte***ce 父類

* class 子類 implements 父類

* * 父類 物件名 = new 子類();

* * 多型中成員訪問特點:

* 1.成員變數:

* 只能訪問父類的成員變數(既然裝,就要裝到底)

* 2.構造方法:

* 子類的構造方法都會預設訪問父類構造方法

* 目的:對父類的資料進行初始化

* 3.成員方法:

* 呼叫子類的成員方法(前提是成員方法要有重寫)

* 4.靜態方法:

* 靜態方法不算重寫,訪問的還是父類方法。

* 多型的有點:

* 1.提高類**的復用性(繼承來保證)

* 2.提高了**的擴充套件性(多型來保證)

* 多型的缺點:

* 父類不能訪問子類特有的功能(子類所有的成員變數,獨有方法)

* 怎麼解決: 子類可以當父類用,父類不能當子類用?

* 轉型:

* 1.向上轉型 :從子到父

* 2.向下轉型 :從父到子

* 用多型

* 1.向上轉型:把父親的屬性列印出來

* 把三個兒子的相同方法的獨特的變現方式列印出來

* 把爸爸的獨有方法列印出來

* 2.向下轉型:把三個兒子獨有的屬性列印出來

* 把三個兒子獨有的方法列印出來

*/public static void main(string args)

}class animal

public animal(int a)

public void eat()

public void sleep()

public static void show(animal a)

public void show2()

public static void drink()

}class cat extends animal

public cat(int a)

public void eat()

public void sleep()

public void call()

public static void drink()

}class dog extends animal

public dog(int a)

public void eat()

public void sleep()

public void call()

public static void drink()

}class horse extends animal

public horse(int a)

public void eat()

public void sleep()

public void call()

public static void drink()

}

java的多型性

多型包括重寫 override 和過載 overload 重寫發生在超類和子類之間,子類覆蓋超類的方法。過載發生在同乙個類中,方法名字相同,方法的形式引數和返回值不同。執行 如下 package com.base.oo class a public string show a obj class b...

java物件的多型性

向上轉型 父類 父類物件 子類例項 example class person class student public class movedemon 向下轉型 子類 子類物件 子類 父類例項 父類向下轉型要用強制 example class person class student public ...

JAVA中的多型性

物件導向的特徵是封裝 繼承 多型,其中多型是指不同類的物件對同一訊息做出相應,即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。類的多型性表現在過載 重寫 物件的多型性上,過載與重寫在之前的博文中做過講解,這裡不再贅述,本文主要講解物件的多型性。物件的多型性指子類與父類的相互裝換,包含如下兩...