java中繼承
前兩個月寫了一篇文章多型,,,,卻忘記了繼承,以下簡要概括什麼是繼承,
1、 什麼是繼承?
子類繼承父類的特徵和行為,使得子類具有父類的各種屬性和方法。或子類從父類繼承方法,使得子類具有父類相同的行為。
2、 為什麼需要繼承?什麼時候應該繼承?
使用繼承可以有效實現程式碼複用,避免重複程式碼的出現。
當兩個類具有相同的特徵(屬性)和行為(方法)時,可以將相同的部分抽取出來放到一個類中作為父類,其它兩個類繼承這個父類。
繼承實現了物件導向的原則
3、 如何實現繼承?
在java語言中,用extends(擴充套件)關鍵字來表示一個類繼承了另一個類。
在父類中只定義一些通用的屬性和方法。
注意只能繼承一個父類
子類自動繼承父類的屬性和方法,子類中可以定義特定的屬性和方法。或子類重新定義父類的屬性、重寫父類的方法可以獲得與父類不同的功能。
1 繼承只支援單繼承
2 多個類可以繼承一個父類
3 可以實現多層繼承 A extends B extends C
4、 什麼是方法重寫?(注意方法重寫和方法過載區別)
如果在子類中定義的一個方法,其名稱、返回型別及引數列表正好與父類中某個方法的名稱、返回型別及引數列表相匹配,那麼可以說,子類的方法重寫了父類的方法。
方法重寫在不同類,是實現多型的必要條件。
方法過載是在一個類中,其名稱、返回型別及引數列表,一定要與同名的不相同,才能達到過載目的
5、 super關鍵字的用法和位置,super關鍵字呼叫父類的構造方法,super關鍵字呼叫父類的方法?
1.在子類的構造方法中,通過super關鍵字呼叫父類的構造方法。
2.如果子類中重寫了父類的方法,可以通過super關鍵字呼叫父類的方法
以下舉例super如何使用
public class Student {
int number;
String name;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int number, String name) {
super();
this.number = number;
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return name+number;
}
}
public class Teacher extends Student {
String salary;
public Teacher() {
// TODO Auto-generated constructor stub
}
public Teacher(int number, String name, String salary) {
super(number,name);
this.salary = salary;
}
@Override
public String toString() {
return super.toString()+this.salary;
}
}
public class Test {
public static void main(String[] args) {
Student s1=new Student(12,"xiaoming");
Teacher t1=new Teacher(22,"張","1000");
System.out.println(s1.toString());
System.out.println(t1.toString());
}
}
輸出結果為
位置注意:呼叫父類的構造方法的語句(super語句)必須是構造方法中的第一條語句。
因為建立物件的時候,需要先建立父類物件,再建立子類物件。
注意:建立物件時,先建立父類物件,在建立子類物件。如果沒有顯示呼叫父類的構造方法,將自動呼叫父類的無參構造方法。
構造方法注意不要忘記寫無參構造方法,因為如果只定義了有引數的構造方法,無參構造方法無法自動生成
6、 一切類(祖先)Object。
所有類都直接或者間接地繼承了java.lang.Object類,Object類中定義了所有的java物件都具有的相同行為,是所有類的祖先。
一個類如果沒有使用extends關鍵字,那
相關文章
- java中的繼承Java繼承
- 12.16 Java繼承Java繼承
- Java的繼承Java繼承
- java繼承extendsJava繼承
- Java中的類繼承與多型Java繼承多型
- JAVA中的註解可以繼承嗎?Java繼承
- Java集合繼承圖Java繼承
- java -繼承 -重寫Java繼承
- Java繼承練習Java繼承
- odoo 繼承(owl繼承、web繼承、view繼承)Odoo繼承WebView
- C++中公有繼承、保護繼承、私有繼承的區別C++繼承
- 學習Java中遇到的繼承問題Java繼承
- java繼承與多型Java繼承多型
- 【Java】繼承、抽象、組合Java繼承抽象
- Java 繼承是什麼?Java繼承
- java物件導向繼承Java物件繼承
- JS中的繼承JS繼承
- PostgreSQL中的繼承SQL繼承
- JavaScript中的繼承JavaScript繼承
- Solidity中的繼承Solid繼承
- Java面試題:Java中的集合及其繼承關係Java面試題繼承
- 菱形繼承,虛繼承繼承
- 原型,繼承——原型繼承原型繼承
- 為什麼說Java中要慎重使用繼承Java繼承
- Java中物件導向三大特性之繼承Java物件繼承
- java——繼承遇到構造方法Java繼承構造方法
- java繼承基礎詳解Java繼承
- Java之繼承和抽象類Java繼承抽象
- 多繼承 與 多重繼承繼承
- JS中的繼承(下)JS繼承
- 聊聊JS中的繼承JS繼承
- JS中的繼承(上)JS繼承
- C++中的繼承C++繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- Java入門系列-16-繼承Java繼承
- Java核心技術筆記 繼承Java筆記繼承
- Java 自學 - 介面與繼承 介面Java繼承
- Java繼承中成員變數的訪問特點「圖文分析」包含繼承中重名訪問的特點Java繼承變數