抽象和多型

2021-09-30 14:04:37 字數 2494 閱讀 1623

(一)抽象

1.概述:將功能定義抽象,那麼該類就是抽象類

2.特點:乙個類中可以抽象方法.也可以有非抽象方法

3.格式:public abstract void method();

4.抽象類的子類特點:

子類可以是抽象類,沒有任何意義.抽象類不能直接例項化,就不能使用呼叫方法!

子類是非抽象類,必須要重寫父類中的抽象方法,然後去使用子類自己的功能

父類是乙個抽象類,如果要建立物件就必須通過子類進行實現.

父類進行例項化只能間接子類進行例項化.

5.抽象類中的成員的特點:

成員變數:可以是變數,也可以是常量(自定義常量)

成員方法:可以是抽象方法,也可以是非抽象方法

構造方法:乙個抽象類中是可以有構造方法的

6.abstract不能和以下的關鍵字共用

關鍵字:private,final,static

private :衝突(要麼使用public/protected)

final :衝突

static:無意義!

7.貓狗案例:

package 抽象;

//貓狗案例

public class abstractdemo

}package 抽象;

//動物抽象類

public abstract class animal

public animal(string name, int age, string color)

//get()/set()

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

public string getcolor()

public void setcolor(string color)

//抽象方法

public abstract void eat();

public abstract void sleep();

}package 抽象;

//貓類

public class cat extends animal

public cat(string name, int age, string color)

public void eat()

public void sleep()

public void playgame()

}package 抽象;

//狗類

public class dog extends animal

public dog(string name, int age, string color)

@override

public void eat()

@override

public void sleep()

}(二)多型

1.多型:指的是乙個事物,在不同時刻狀態的乙個體現

2.前提條件:

1)必須有繼承關係

2)繼承乙個類的同時,子類中必須有方法重寫(使用子類中的方法去覆蓋父類中的方法)

3)父類的引用指向子類物件

fu f = new zi() ;將f代表的父類引用指向堆記憶體的子類的物件!向上轉型!

3.多型中的成員訪問特點:

package org.westos_多型;

class fu

//成員方法

public void show()

public static void function()

}class zi extends fu

//非靜態成員方法:編譯看左,執行看右

public void show()

//靜態成員方法:編譯看左,執行看左

public static void function()

}//測試類

public class duotaidemo

}4.多型的好處:

提高了**的維護性(由繼承保證)

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

5.多型的弊端:

子類只能使用父類的功能:不能使用子類中特有的功能!

要想使用子類具體功能

1)建立子類物件

2)向下轉型:將父類的引用強制轉換為子類物件

zi z = (zi)(f) ;//還原成子類物件

6.貓狗案例以及乙個執行異常:

package org.westos_多型;

//動物類

class animal

public void sleep()

}//貓類

class cat extends animal

}//狗類

class dog extends animal

}//測試類

public class duotaidemo2

}

多型和抽象

多型就是指 相同的行為不同的實現 特指方法 理解多型 1.靜態多型 編譯期,系統就能決定呼叫哪個方法 通過過載實現 2.動態多型 執行期,系統才能確定動態方法所指的物件 使用動態繫結和重寫實現 注 多型中大量用到動態多型。多型的技術基礎 1.向上轉型技術 子轉父 用到動態繫結技術 執行時根據父類引用...

多型和抽象

經過一天的學習我們需要掌握以下幾點。一 什麼是多型。乙個物件有多種形式的能力乙個類的子類可以定義他們唯一的行動,同時共享父類的某次寫相同特徵。二 了解多型之前需要了解幾個繼承技術。1向上轉型技術 2instaceof關鍵字 3動態繫結技術。三 動態繫結。將乙個方法呼叫與該方法所在的類關聯起立。四 什...

多型和抽象

乙個物件有多重形式的能力,相同的行為不同的實現。乙個介面,多種實現 編譯時系統決定呼叫哪個方法 通過方法的過載實現 方法的過載滿足相同的行為不同的實現 單獨的重寫也是靜態多型 過載1.過載只能通過不同的方法引數來區分。例如不同的引數型別,不同的引數個數,不同的引數順序。2.不能通過訪問許可權 返回型...