Java學習筆記(Java中的繼承)

一、概述

面向對象編程中,繼承是一個比較重要的概念,繼承描述的是事物之間的所屬關系,是從已有的類中構建出新的類,已有的類稱為父類,新的類稱為子類,子類具有父類的數據屬性和方法,并能擴展新的屬性和方法(不能繼承私有)。

1、繼承的使用

格式:使用 extends 關鍵字 ==> class 子類 extends 父類 ()

創(chuàng)建 Person 類和 Student 子類:public class Student extends Person {...}

2、繼承的優(yōu)點

提高了代碼的復用性,提高了軟件的開發(fā)效率

讓類與類之間產生了聯(lián)系,提供了多態(tài)的前提

3、繼承的特點

在Java中,只支持單繼承,不支持多繼承,一個子類只能有一個直接父類;

父類私有成員,子類不能繼承,因為根本看不到;

一個父類可以有多個子類;

支持多層繼承,一個類的父類可以再去繼承另外的父類;

子類和父類是相對的概念,一個類是某個類父類的同時,也可以是另一個類的子類。

4、繼承中成員變量關系

不同變量名子類直接調用;

相同變量名調用時,如果子類有,就不調用父類的變量,如果子類沒有,父類有,則調用父類的;

在子類中,要調用父類的成員,使用關鍵字 super,調用父類方法也是一樣,使用super關鍵字

二、代碼實例

public abstract class Person {

? ? String name;

? ? int age;

? ? int i = 1;

? ? public void setName(String name)

? ? {

? ? ? ? this.name = name;

? ? }

? ? public void setAge(int age)

? ? {

? ? ? ? this.age = age;

? ? }

? ? public String getName()

? ? {

? ? ? ? return name;

? ? }

? ? public int getAge()

? ? {

? ? ? ? return age;

? ? }

}

再創(chuàng)建Studen.java子類

public class Student extends Person {

? ? int i = 2;

? ? int number;

? ? public void setNumber(int number)

? ? {

? ? ? ? this.number = number;

? ? }

? ? //在子類中能直接使用父類的非私有成員變量

? ? public void message()

? ? {

? ? ? ? System.out.println("My name is " + this.name + ",I am " + this.age + " years old," + " my number is " + this.number);

? ? }

? ? public void print()

? ? {

? ? ? ? System.out.println(name);

? ? ? ? System.out.println(super.i);? ? ? //在子類中,要調用父類的成員,使用關鍵字super

? ? }

}

在Main.java中賦值并調用

public class Main {

? ? public static void main(String[] args)

? ? {

? ? ? ? Student stu = new Student();

? ? ? ? stu.setAge(18);

? ? ? ? stu.setName("java");

? ? ? ? stu.setNumber(32);

? ? ? ? stu.message();

? ? ? ? stu.print();

? ? ? ? System.out.println(stu.i);? ? ? //子類有則調用子類的,子類沒有則調用父類的

? ? }

}

實例分析:

1.在父類Person中定義了非私有變量name、age和測試變量i,子類Student中新創(chuàng)建了number變量并在子類中能夠使用父類中的變量。

2.在父類和子類中都有 i 變量,調用時,如果子類有,就不調用父類的變量,如果子類沒有,父類有,則調用父類的。

3.在子類中,要調用父類的成員,使用關鍵字 super,調用父類方法也是一樣,使用super關鍵字。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容