Java中類的繼承

2021-09-02 22:34:02 字數 2822 閱讀 2335

繼承最主要的作用是減少**冗餘(少寫很多重複的**),實現**的復用性

子類只能繼承父類的非私有變數和方法

父類的構造方法不能被繼承但能被呼叫

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...