1. 程式人生 > >什麼是多型,多型的概念,多型的體現,多型的應用

什麼是多型,多型的概念,多型的體現,多型的應用

public class Test {
public static void main(String[] args) {
	
	Person person = new Student();
//	 new Student() 是實現類了一個學生身份的張三, Person person是一個人身份,
//	   將學生身份的張三提升至人身份 ,這就是多型的應用,
}
}

1.1     多型概述

多型是繼封裝、繼承之後,面向物件的第三大特性。

現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。                                                                                                                                                                   

Java作為面向物件的語言,同樣可以描述一個事物的多種形態。如Student類繼承了Person類,一個Student的物件便既是Student,又是Person。

Java中多型的程式碼體現在一個子類物件(實現類物件)既可以給這個子類(實現類物件)引用變數賦值,又可以給這個子類(實現類物件)的父類(介面)變數賦值。

如Student類可以為Person類的子類。那麼一個Student物件既可以賦值給一個Student型別的引用,也可以賦值給一個Person型別的引用。

最終多型體現為父類引用變數可以指向子類物件

多型的前提是必須有子父類關係或者類實現介面關係,否則無法完成多型

在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫後的方法

1.2     多型的定義與使用格式

多型的定義格式:就是父類的引用變數指向子類物件

父類型別變數名 = new 子類型別();

變數名.方法名();

1. 普通類多型定義的格式

父類變數名 = new 子類();

如: class Fu {}

    class Ziextends Fu {}

    //類的多型使用

Fu f = new Zi();

2.抽象類多型定義的格式

抽象類變數名 = new 抽象類子類();

如: abstractclass Fu {

        public abstract void method();

         }

class Zi extends Fu {

public void method(){

             System.out.println(“重寫父類抽象方法”);

}

}

//類的多型使用

Fu fu= new Zi();