繼承最主要的作用是減少**冗餘(少寫很多重複的**),實現**的復用性子類只能繼承父類的非私有變數和方法
父類的構造方法不能被繼承但能被呼叫
class
pet
//dog類繼承於pet類
class
dogextends
pet
訪問父類構造方法:super()
或super(param)
;訪問父類成員:super.param
public
class
petpublic
pet(string name)
public string getname()
public
void
setname
(string name)
public
intgetlove()
public
void
setlove
(int love)
public
intgethealth()
public
void
sethealth
(int health)
public
void
print()
}
public
class
dogextends
petpublic string getstrain()
public
void
setstrain
(string strain)
}
public
class
extdemo
}
執行結果:我的名字叫二哈,我的健康值是100,與主人的親密度是0
private string name =
"無名氏"
;private
int love =0;
// 親密度
private
int health =
100;
// 健康值
先在父類pet中定義了三個私有變數,使得這三個變數只在本類中可以被訪問。
public
pet(
)public
pet(string name)
為父類定義了構造方法,其中無參的構造方法裡this.health = 95
把95賦值給了本類的health
,而在有參的構造方法裡傳入了乙個字串,通過this.name = name
把傳入的字串賦給本類的name
。這兩個不同的構造方法在呼叫時將會得到不同的執行結果。
public string getname()
public
void
setname
(string name)
之後就是定義get方法和set方法,來實現其他類對父類私有變數的訪問。
public class dog extends pet
建立dog類來繼承pet類,即dog類是pet類的子類,extends
關鍵字表示繼承。
private string strain
用來定義狗狗的品種。
public
dog(string name, string strain)
在構造方法中傳入了兩個變數,name 和 strain。super(name)
的作用是引用父類的有參構造方法,父類的有參構造裡寫的是this.name = name
,則在這裡的用途是把dog類的構造方法傳入的 name 賦給了父類的 name 變數,而this.strain = strain
是把傳入的 strain 賦給當前本類的 strain 變數。接著再分別定義getstrain()
和setstrain()
方法來獲得和設定 strain 的值。
本例中並沒有實際用到 strain 這個變數,getstrain()
和setstrain()
這兩個方法也並未使用過。
dog dog =
newdog
("二哈"
,"哈士奇");
dog.
print()
;
最後在主類中例項化dog類的物件,使用有參的構造方法public dog(string name, string strain)
傳入name = "二哈"
strain = "哈士奇"
,呼叫print()
方法,這個方法在dog類裡並不存在,而是從它的父類pet類繼承而來。
public
void
print()
這樣就得到了執行結果我的名字叫二哈,我的健康值是100,與主人的親密度是0
。 java中類的繼承1
1 類之間的關係 1 依賴 uses a 是一種最明顯的 最常見的關係。如果乙個類的方法操縱另乙個類的物件,我們就說乙個類依賴於另乙個類。2 聚合 has a 聚合意味著類a的物件包含類b的物件。3 繼承 is a 是一種用於表示特殊與一般關係的。一般而言,如果類 擴充套件類 類 不但包含從類 繼承...
java 類的繼承體系
詳細描述見 1 原因1 雖然抽象類b implements c.但是,有可能b中的並沒有真正實現c介面中的方法 因為b是抽象類,抽象類可以不實現介面中的方法,而是直接用 abstract 修飾。如 abstract void method 那麼,由於a extends b,而 a不是抽象類,那麼a就...
Java基礎 類的繼承
父類 public class student 學生的行為方法 public void study 子類 public class unstudent子類的物件可以使用父類的方法 父類的物件不可使用子類的方法 public static void main string args 自動 向上 stu...