欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java繼承的問題引導(dǎo)和測試代碼

 更新時間:2021年08月24日 10:44:24   作者:!flameking  
這篇文章主要介紹了Java繼承的問題引導(dǎo)和測試代碼,涉及繼承的概念,合成的語法等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。

1.1、定義

從現(xiàn)有類派生的類被稱作子類,也叫派生類,擴(kuò)展類,或孩子類?,F(xiàn)有類被稱作超類,也叫基類,或父類。

1.2、創(chuàng)建子類

public class Person {}
public class Teacher extends Person{} 

1.3、繼承的基本規(guī)則

1. 子類可以繼承除父類構(gòu)造函數(shù)以外的一切成員

為什么子類沒有繼承父類的構(gòu)造函數(shù) ?
父類構(gòu)造函數(shù)無法預(yù)知子類新增的屬性和方法,所以不能被繼承

2. 雖然子類繼承了父類的私有成員,但子類并不能直接訪問,如果想要訪問私有成員必須借助父類的公共接口。

public class Person {
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
	    this.name = name;
	}
}
public class Teacher extends Person{
// 方法覆蓋
	public String getName() {
// super 調(diào)用父類的功能接口
    	return super.getName() + "校長";
	}
}
public class Test {
	public static void main(String... args) {
        Teacher flameking = new Teacher();
        System.out.println( flameking.getName() );
    }
}

測試結(jié)果:

私有域訪問測試結(jié)果

小結(jié):

super.getName() + "校長"; 這樣便能訪問父類私有的 name 屬性 。所以在子類中可以通過 super.父類公共接口 的形式,訪問父類的私有成員。

3. 只支持單一繼承,不支持多重繼承,但支持多層繼承

解釋:除了Object 沒有父類,每個類有且僅有一個直接父類,如果沒有明確指出父類,Object 被認(rèn)為是這個類的父類。

也許有同學(xué)就會問了,既然 Object 是所有類的父類,那么為什么還可以繼承其他類呢?
正如解釋里所說:“沒有明確指出父類,Object 被認(rèn)為是這個類的父類?!?/p>

沒有明確指出父類

public class Person {}
public class Teacher {}

繼承關(guān)系是這樣的:

未繼承時的繼承關(guān)系

繼承后

public class Teacher extends Person{}

繼承關(guān)系如下:

繼承后的繼承關(guān)系

也許有同學(xué)又會問:既然不能多重繼承了,那我要同時繼承多個類的功能該怎么辦呢?解決辦法如下:

// 第一種方式(✖️)
public class Person {}
public class Employee {}
public class Teacher extends Person,Employee {}
// 第二種方式(✔️)
public class Person {}
public class Employee extends Person {}
public class Teacher extends Employee {}

小結(jié):

如上,既然不能多重繼承,那么利用多層繼承的方式便能同時繼承多個類的功能。

1.4、阻止繼承

當(dāng)我們在創(chuàng)建一個新類時,現(xiàn)有某個類包含我們想要的代碼,那么讓這個新類繼承它,這樣我們就不用重新編寫代碼,就可以復(fù)用已存在的屬性和方法??墒怯心硞€同學(xué)他偏偏不想讓別人利用他的代碼…

那他怎么做才能讓自己的代碼不被別人繼承呢?

1.4.1、final修飾符

1. final 修飾的類不能被繼承

使用方法:

public final class Person {}

效果顯示:

不能繼承報錯提示.

2. final 修飾的方法不能被覆蓋

3. final 修飾的變量(成員變量和局部變量)必須顯式初始化,且只能初始化一次。

修改 final 局部變量 的取值

public class Test {
	public static void main(String... args) {
    final int temp;
    temp = 1;
    temp = 2;
    }
}

報錯提示:

修改final局部變量 的取值

final成員變量未顯式初始化

public class Person {
	private final String name;
}

報錯提示:

final成員變量未顯式初始化

4. 常量定義的標(biāo)準(zhǔn)格式

public static final 數(shù)據(jù)類型 常量名=賦值

常量名:大寫字符,如果有多個,用下劃線連接

private 修飾的類成員只能在類的內(nèi)部訪問,這是由面向?qū)ο蟮姆庋b性決定的

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java兩個integer數(shù)據(jù)判斷相等用==還是equals

    java兩個integer數(shù)據(jù)判斷相等用==還是equals

    本文主要介紹了java兩個integer數(shù)據(jù)判斷相等用==還是equals,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解Spring注解 @Configuration

    詳解Spring注解 @Configuration

    @Configuration 是 Spring 中的一個注解,它用于標(biāo)記一個類為配置類,通過配置類可以定義和組裝 Spring Bean,并且支持高度靈活的配置方式。本問詳細(xì)介紹了Spring注解 @Configuration,感興趣的小伙伴可以參考一下
    2023-04-04
  • spring cloud zuul修改請求url的方法

    spring cloud zuul修改請求url的方法

    這篇文章主要給大家介紹了關(guān)于spring cloud zuul修改請求url的方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring cloud具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-09-09
  • Spring中Controller和RestController的區(qū)別詳解

    Spring中Controller和RestController的區(qū)別詳解

    這篇文章主要介紹了Spring中Controller和RestController的區(qū)別詳解,@Controller是標(biāo)識一個Spring類是Spring MVC controller處理器,@Controller類中的方法可以直接通過返回String跳轉(zhuǎn)到j(luò)sp、ftl、html等模版頁面,需要的朋友可以參考下
    2023-09-09
  • java批量插入數(shù)據(jù)的幾種方法

    java批量插入數(shù)據(jù)的幾種方法

    這篇文章主要給大家介紹了關(guān)于java批量插入數(shù)據(jù)的幾種方法,大家在Java項目中經(jīng)常會出現(xiàn)大量向數(shù)據(jù)庫中插入的情況,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 如何使用Java將word解析出來(包含格式和圖片)

    如何使用Java將word解析出來(包含格式和圖片)

    今天遇到一個讀取word模板內(nèi)容的需求,下面這篇文章主要給大家介紹了關(guān)于如何使用Java將word解析出來,包含格式和圖片,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 深入理解以DEBUG方式線程的底層運(yùn)行原理

    深入理解以DEBUG方式線程的底層運(yùn)行原理

    說到線程的底層運(yùn)行原理,想必各位也應(yīng)該知道我們今天不可避免的要講到JVM 了。其實大家明白了Java的運(yùn)行時數(shù)據(jù)區(qū)域,也就明白了線程的底層原理,今天帶著大家一步一步DEBUG,來看看線程到底是怎么運(yùn)行的,順便把IDEA的DEBUG方法簡單講一下
    2021-06-06
  • idea克隆maven項目的方法步驟(圖文)

    idea克隆maven項目的方法步驟(圖文)

    這篇文章主要介紹了idea克隆maven項目的方法步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • ZooKeeper Java API編程實例分析

    ZooKeeper Java API編程實例分析

    本文主要通過實例給大家詳細(xì)分析了ZooKeeper用JAVA實現(xiàn)API編程的知識要點(diǎn)。
    2017-11-11
  • Java執(zhí)行可執(zhí)行文件的三種方法詳解

    Java執(zhí)行可執(zhí)行文件的三種方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中執(zhí)行可執(zhí)行文件的三種方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以參考一下
    2024-02-02

最新評論