物件導向15 16 抽象類 介面

2021-10-12 19:04:13 字數 2628 閱讀 3975

參考博文

參考博文

抽象類用來描述一種型別應該具有的基本特徵和功能,具體如何去完成這些行為由子類通過方法重寫來完成,如:

犬科均會吼叫,但屬於犬科的狼與狗其吼叫內容不同。所以犬科規定了有吼叫功能,但並不明確吼叫的細節。吼叫的細節應該由狼與狗這樣的犬科子類重寫吼叫的方法具體實現。

即抽象方法指只有功能宣告,沒有功能主體實現的方法。

abstract修飾符可以用來修飾方法也可以修飾類,如果修飾方法,那麼該方法就是抽象方法;如果修飾類,那麼該類就是抽象類。

抽象類的使用要點:

抽象類中可以沒有抽象方法,但是有抽象方法的類一定要宣告為抽象類。

抽象類不能被例項化,即不能用new來例項化抽象類。

抽象類中的抽象方法只是宣告,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能

抽象類除了不能例項化物件之外,類的其他功能依然存在,屬性、方法、構造方法和普通類一樣。

構造方法,類方法(即用static修飾的方法)不能宣告為抽象方法。

抽象類只能用來被繼承。

抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。

package com.oop.demo07;

//abstract 抽象類

public

abstract

class

test01

/* 1.不能new這個抽象類,只能靠子類去實現它!

2.抽象類中可以寫普通的方法

3.抽象方法必須在抽象類中

*/}class

test02

extends

test01

}class

test03

}

參考博文

介面就是規範,定義的是一組規則,體現現實世界中「如果你是······,則必須······」的思想如果你是天使,則必須會飛。如果是汽車,則必須能跑。

介面的宣告

介面的實現

package com.oop.demo08;

//介面,定義介面的關鍵字:inte***ce

public

inte***ce

userservice

//介面中的定義的所有屬性皆為 public static final(預設可不寫)

int age =99;

//介面中的定義的所有方法其實都是抽象的 public abstract(預設可不寫)

void

add(

int num1,

int num2)

;void

delete

(int num)

;void

update

(string name)

;}

package com.oop.demo08;

public

inte***ce

timer

package com.oop.demo08;

public

class

userserviceimple

implements

userservice

,timer

@override

public

void

delete

(int num)

@override

public

void

update

(string name)

@override

public

void

timer()

public

static

void

main

(string[

] args)

}

實現介面時,應注意:

1. 乙個類可以同時實現多個介面

2.乙個類只能繼承乙個類,但是能實現多個介面

3. 乙個介面能繼承另乙個介面

介面的繼承

package com.oop.demo08;

public

inte***ce

myinte***ce

inte***ce

myinte***ce01

//myinte***ce02 介面繼承了myinte***ce、myinte***ce01介面

//則實現介面myinte***ce02介面的類,需要實現3個方法

inte***ce

myinte***ce02

extends

myinte***ce

,myinte***ce01

class

myinte***ceimp

implements

myinte***ce02

@override

public

void

mytest01()

@override

public

void

mytest02()

}

物件導向 介面類 抽象類

python 沒有介面這個概念 介面類,抽象類 制定乙個規範.介面類,抽象類 python中就是一樣的 1,歸一化設計.2,制定乙個規範,凡是繼承我類的類,必須有我規定的方法.第一版class alipay def init self,money self.money money defpay se...

PHP物件導向 介面類 抽象類

php物件導向在初學時就應該熟練掌握,但許久不用,總會生疏,在此補充記憶物件導向介面和抽象的概念。1.定義乙個介面 inte ce icaneat想實現此介面則需要實現eat方法,2.實現介面 class human implements icaneat 判斷是否實現介面 var dump man ...

python物件導向 抽象類,介面類

python 中沒有介面這個概念 介面類,抽象類就是制定乙個規範 抽象類是乙個特殊的類,它的特殊之處在於只能被繼承,不能被例項化 抽象類的本質還是類,指的是一組類的相似性,包括資料屬性 如all type 和函式屬性 如read write 而介面只強調函式屬性的相似性from abc import...