圖像和聲音文件(4)
5.8 繼承的設(shè)計技巧
在本章的最后,我們給出對設(shè)計繼承很有幫助的一些技5
1.將公共操作和字段放在超類中。
出就是將姓名字段放在Rersn類中,而沒有將它重復(fù)放在9的s積50m類中物重具
2.不要使用受保護的字段。
有些程序員認為,將大多數(shù)的實例字段定義為pwetert是一個不能的主案一以了一,這樣子類就能夠在需要的時候訪問這些字段。然而,們期得未題。以理多的保護,這有兩方面的原因,第一,子類集合是無限制的,任何一個人都活停者的,美器生一個于類,然后編寫代碼直接訪間potected實例字段,從而表不了封能性。索三整。中,在同一個包中的所有類都可以訪問proered字段,而不管它們是否為這個類的子類。不過,protected方法對于指示那些不提供一般用途而應(yīng)在子類中重新定義的方法很有用。
3.使用繼承實現(xiàn)“is-a”關(guān)系。
使用繼承很容易達到節(jié)省代碼量的目的,但有時候也會被人們?yōu)E用。例如,假設(shè)需要定義一個Contractor類。鐘點工有姓名和雇傭日期,但是沒有工資。他們按小時計薪,并且不會因為拖延時間而獲得加薪。這似乎在誘導(dǎo)人們由Employee 派生出子類Cantractor,然后再增加一個hourlyWage字段。
public class Contractor extends Employee
?
( ̄ω ̄) [摸摸頭]:
private double hourlynage;
比,使用繼承來實現(xiàn)最后反而會多寫很多代碼。
鐘點工與員工之間不屬于“is-a”關(guān)系。鐘點工不是特殊的員工。
4.除非所有繼承的方法都有意義,否則不要使用繼承。
標(biāo)簽: