1. 程式人生 > >Java中繼承的概念

Java中繼承的概念

繼承的概念:繼承指的是一個類從另一個類從獲得屬性和方法的過程,它們的關係可以看做是父子的關係,一個父類,一個子類。
繼承只能是單繼承的,就如一個父親可以有多個孩子,但是一個孩子不能有多個父親的道理一樣。
繼承使用extends關鍵字。
我們首先建立一個People類:
public class People {
String name; //定義姓名
char sex; //定義性別
int age; //定義年齡
People(){
System.out.println(“我是人類”);
}
void show(){
System.out.println(“我的名字是:”+name+”\n我的性別是:”+sex+”\n我的年齡是”+age+”歲”);
}
}

然後我們建立一個Student類來繼承people類:
public class Student extends People {
String school; //定義學校名
int score; //定義成績
Student() {
System.out.println(“我是學生類”);
}
void show(){
System.out.println(“我的名字是:”+name+”\n我的性別是:”+sex+”\n我的年齡是”+age+”歲”);
System.out.println(“我的學校是:”+school+”\n我的成績是”+score+”分”);
}
}
最後我們建立一個測試類來進行測試:
public class Test {
public static void main(String[] args) {
People peo = new People();
peo.name = “大明”;
peo.age = 43;
peo.sex = ‘男’;
peo.show();
System.out.println();
Student stu = new Student();
stu.name = “小明”;
stu.age = 20;
stu.sex = ‘男’;
stu.school = “清華”;
stu.score = 100;
stu.show();
}
}
輸出結果如下:
我是人類
我的名字是:大明
我的性別是:男
我的年齡是43歲

我是人類
我是學生類
我的名字是:小明
我的性別是:男
我的年齡是20歲
我的學校是:清華
我的成績是100分

在Student類中是沒有年齡、性別、姓名這三個成員變數的,它是從People類那繼承過來的。同時也有它本身特有的屬性,如學校,成績等。
在例項化Student類的時候,我們看它首先會執行一個輸出語句:我是人類。這是因為在例項化Student類的時候會先例項化People,因此會執行People類的構造方法的。
在父類中和子類中都是有show()方法的,但我們執行子類的show()方法的時候是不會執行父類的show方法的。因為在父類和子類中存在同一個方法的時候,子類就會把父類的方法覆蓋掉。這並不是說父類的方法就沒有了,它只是被隱藏掉了,我們可以用關鍵字super

來呼叫父類的成員變數和成員方法的。
super表示當前類的父類。
我們在子類中用super就可以得到父類中被隱藏的東西的。

如果我們將Student類中的show()方法傳入一個形參的話,變成show(int a);這樣就形成了方法的過載,它也繼承了父類的show()方法的,過載之前已經有了。
注:構造方法是不能被繼承的。
私有的方法和私有的成員變數是不能被繼承的。