物件導向的三大特徵:
1. 封裝
2. 繼承。
3. 多型
多型:乙個物件具備多種形態。(父類的引用型別變數指向了子類的物件)或者是介面 的引用型別變數指向了介面實現類的物件
多型的前提:必須存在繼承或者實現 關係。
動物 a = new 狗();
多型要注意 的細節:
1. 多型情況下,子父類存在同名的成員變數時,訪問的是父類的成員變數。
2. 多型情況下,子父類存在同名的非靜態的成員函式時,訪問的是子類的成員函式。
3. 多型情況下,子父類存在同名的靜態的成員函式時,訪問的是父類的成員函式。
4. 多型情況下,不能訪問子類特有的成員。
總結:多型情況下,子父類存在同名的成員時,訪問的都是父類的成員,除了在同名非靜態函式時才是訪問子類的。
//動物類
abstract class animal
public abstract void run();
public void eat()
}//老鼠
class mouse extends animal
public void run()
public void eat()
//老鼠特有方法---打洞
public void dig()
}class fish extends animal
public void run()
}class demo11
}
執行結果
如果動物類中的成員函式為靜態,則多型呼叫時呼叫父類動物類的函式
多型的應用:
1. 多型用於形參型別的時候,可以接收更多型別的資料 。
2. 多型用於返回值型別的時候,可以返回更多型別的資料。
多型的好處: 提高了**的拓展性。
//圖形類
abstract class myshape
class circle extends myshape
public void getarea()
public void getlength()
}class rect extends myshape
public void getarea()
public void getlength()
}class demo12
//需求1: 定義乙個函式可以接收任意型別的圖形物件,並且列印圖形面積與周長。
public static void print(myshape s)
// 需求2: 定義乙個函式可以返回任意型別的圖形物件。
public static myshape getshape(int i)else
}}
執行結果:
需求一是利用函式的基類形參接收了子類的物件,實現多型
需求二是利用基類物件接收函式的子類返回值,實現多型
JAVA 多型應用
1 使用父類作為方法引數型別 2 使用父類作為方法返回值型別 注 當作為引數的父類是普通類或者抽象類時,構成繼承多型 當作為引數的父類是乙個介面時,構成介面多型 形式引數的型別 基本型別 引用型別 普通類形參 當乙個形參希望我們傳入的是乙個普通類時,我們實際上傳入的是該類的物件 匿名物件 抽象類形參...
Java多型的應用 模板模式
模板模式是多型的典型應用,在現實生活中有規律的事情都可以總結為模板。寫 的時候,也可以碰到,下面以四大名著中的 西遊記 為例,描述一下模板模式的實現,首先建乙個抽象類,描述一下西遊記的主要情節。package com.ws.basic public abstract class testtemple...
Java學習 java 多型
多型 一種事物的多種形態 多型的規則 前提 1.類與類之間要建立關係,建立繼承的關係 2.必須要有方法的重寫 3.父類的指標 引用 指向子類的物件 空間 public static void main string args class animal class cat extends animal...