繼承的拓展 利用組合來實現復用

2021-07-14 20:56:05 字數 596 閱讀 9940

假設有3個類:animal、wolf、bird

新建乙個animal類            全部在包中

package org;

class animal

public void breath()

}建乙個wolf類

package org;

import org.animal;//匯入包中的animal類

class wolf

//重新定義乙個自己的breath()方法

public void breath()

public void fly()

}再去建乙個bird類

package org;

import org.animal;//匯入包中的animal類

class bird

//重新定義乙個自己的breath()方法

public void breath()

public void fly()

}在comfun裡呼叫

package org;

import org.*;//匯入包中的所有類

public class comfun

}

5 8 2 利用組合實現復用

對於繼承而言,子類可以直接獲得父類的public方法,程式使用子類時,都可以直接訪問該子類從父類那裡繼承到的方法 而組合則是把舊類物件作為新類的成員變數組合起來,用以實現新類的功能。package chap5 7 class animal public void breath class bird ...

JS實現繼承之最常用的組合繼承

使用建構函式方法和原型鏈方法都不能很好的實現繼承,他們各有優勢,也各有劣勢,如果把他們組合在一起,是不是可以各取所長,取長補短呢?答案是可以的,這就是組合繼承 function person skin person.prototype.run function function chinese na...

golang 使用組合的方式實現繼承

火頭陀 關注 golang並非完全物件導向的程式語言,為了實現物件導向的繼承這一神奇的功能,golang允許struct間使用匿名引入的方式實現物件屬性方法的組合 package main import fmt type people struct type people2 struct func ...