java面向對象5-繼承
繼承是面向對象最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行爲,並能擴展新的能力。 Java繼承是使用已存在的類的定義作爲基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術使得複用以前的代碼非常容易,能夠大大縮短開發週期,降低開發費用。
繼承使用extends關鍵字實現
class Person {
String name;
int age;
// 靜態變量(類變量)對象和對象之間的代碼重複使用靜態變量
static String country = "CN";
Person() {
}
void speak() {
System.out.println(name + ":哈哈,我是人!!!");
}
}
// 讓學生類和人類產生關係,發現學生is a 人,就可以使用繼承
class Student extends Person {
Student() {
}
void study() {
System.out.println("姓名:" + name + "年紀:" + age + ":好好學習");
}
}
class Worker extends Person {
void work() {
System.out.println(name + ":好好工作,好好掙錢。");
}
}
class Demo1 {
public static void main(String[] args) {
Student stu = new Student();
stu.name = "jack";
stu.age = 20;
stu.study();
stu.speak();
System.out.println(stu.country);
System.out.println(Student.country);
Worker worker = new Worker();
worker.name = "rose";
System.out.println(worker.country);
worker.work();
worker.speak();
System.out.println();
}
}
總結:
子類並不能繼承父類中所有的成員
1.父類定義完整的成員 靜態成員,非靜態,構造方法。靜態變量和靜態方
法都可以通過子類名.父類靜態成員的形式調用成功。
2.所有的私有成員不能繼承,private修飾的成員。
3.構造函數不能被繼承
繼承講究的是兩個類之間有…is…a…的關係。不應該爲了功能而繼承。畢竟他只能繼承一個父類。