最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.1、定義

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

1.2、創(chuàng)建子類(lèi)

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

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

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

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

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

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)用父類(lèi)的功能接口
    	return super.getName() + "校長(zhǎng)";
	}
}
public class Test {
	public static void main(String... args) {
        Teacher flameking = new Teacher();
        System.out.println( flameking.getName() );
    }
}

測(cè)試結(jié)果:

私有域訪問(wèn)測(cè)試結(jié)果

小結(jié):

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

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

解釋?zhuān)撼薕bject 沒(méi)有父類(lèi),每個(gè)類(lèi)有且僅有一個(gè)直接父類(lèi),如果沒(méi)有明確指出父類(lèi),Object 被認(rèn)為是這個(gè)類(lèi)的父類(lèi)。

也許有同學(xué)就會(huì)問(wèn)了,既然 Object 是所有類(lèi)的父類(lèi),那么為什么還可以繼承其他類(lèi)呢?
正如解釋里所說(shuō):“沒(méi)有明確指出父類(lèi),Object 被認(rèn)為是這個(gè)類(lèi)的父類(lèi)。”

沒(méi)有明確指出父類(lèi)

public class Person {}
public class Teacher {}

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

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

繼承后

public class Teacher extends Person{}

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

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

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

// 第一種方式(✖️)
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é):

如上,既然不能多重繼承,那么利用多層繼承的方式便能同時(shí)繼承多個(gè)類(lèi)的功能。

1.4、阻止繼承

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

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

1.4.1、final修飾符

1. final 修飾的類(lèi)不能被繼承

使用方法:

public final class Person {}

效果顯示:

不能繼承報(bào)錯(cuò)提示.

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

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

修改 final 局部變量 的取值

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

報(bào)錯(cuò)提示:

修改final局部變量 的取值

final成員變量未顯式初始化

public class Person {
	private final String name;
}

報(bào)錯(cuò)提示:

final成員變量未顯式初始化

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

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

常量名:大寫(xiě)字符,如果有多個(gè),用下劃線連接

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

總結(jié)

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

相關(guān)文章

  • JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解

    JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解

    這篇文章主要介紹了JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解,Tomcat是一個(gè)開(kāi)源的Java Web服務(wù)器,它是基于Java Servlet和JavaServer Pages(JSP)技術(shù)的,下面是關(guān)于Tomcat底層機(jī)制和Servlet運(yùn)行原理的簡(jiǎn)要說(shuō)明,需要的朋友可以參考下
    2023-10-10
  • Spring?Boot深入學(xué)習(xí)數(shù)據(jù)訪問(wèn)之Spring?Data?JPA與Hibernate的應(yīng)用

    Spring?Boot深入學(xué)習(xí)數(shù)據(jù)訪問(wèn)之Spring?Data?JPA與Hibernate的應(yīng)用

    Spring?Data?JPA是Spring?Data的子項(xiàng)目,在使用Spring?Data?JPA之前,先了解一下Hibernate,因?yàn)镾pring?Data?JPA是由Hibernate默認(rèn)實(shí)現(xiàn)的
    2022-10-10
  • Java實(shí)戰(zhàn)之實(shí)現(xiàn)物流配送系統(tǒng)示例詳解

    Java實(shí)戰(zhàn)之實(shí)現(xiàn)物流配送系統(tǒng)示例詳解

    這篇文章主要介紹了一個(gè)java實(shí)戰(zhàn)項(xiàng)目:通過(guò)java、SSM、JSP、mysql和redis實(shí)現(xiàn)一個(gè)物流配送系統(tǒng)。文中的示例代碼非常詳細(xì),需要的朋友可以參考一下
    2021-12-12
  • java 遍歷Map的幾種方法總結(jié)

    java 遍歷Map的幾種方法總結(jié)

    這篇文章主要介紹了java 遍歷Map的四種方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-10-10
  • Java的Spring框架的三種連接池的基本用法示例

    Java的Spring框架的三種連接池的基本用法示例

    這篇文章主要介紹了Java的Spring框架的三種連接池的基本用法示例,Spring框架是Java下注明的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • Java工廠模式用法之如何動(dòng)態(tài)選擇對(duì)象詳解

    Java工廠模式用法之如何動(dòng)態(tài)選擇對(duì)象詳解

    工廠設(shè)計(jì)模式可能是最常用的設(shè)計(jì)模式之一,我想大家在自己的項(xiàng)目中都用到過(guò)。本文不僅僅是關(guān)于工廠模式的基本知識(shí),更是討論如何在運(yùn)行時(shí)動(dòng)態(tài)選擇不同的方法進(jìn)行執(zhí)行,你們可以看看是不是和你們項(xiàng)目中用的一樣
    2023-03-03
  • springMVC的RequestMapping請(qǐng)求不到路徑的解決

    springMVC的RequestMapping請(qǐng)求不到路徑的解決

    這篇文章主要介紹了springMVC的RequestMapping請(qǐng)求不到路徑的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析

    Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析

    這篇文章主要介紹了Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Mybatis兩種不同批量插入方式的區(qū)別

    Mybatis兩種不同批量插入方式的區(qū)別

    隨著業(yè)務(wù)需要,有時(shí)我們需要將數(shù)據(jù)批量添加到數(shù)據(jù)庫(kù),mybatis提供了將list集合循環(huán)添加到數(shù)據(jù)庫(kù)的方法,這篇文章主要給大家介紹了關(guān)于Mybatis兩種不同批量插入方式的區(qū)別,需要的朋友可以參考下
    2021-09-09
  • Java TimeoutException:服務(wù)調(diào)用超時(shí)異常的正確解決方案

    Java TimeoutException:服務(wù)調(diào)用超時(shí)異常的正確解決方案

    在現(xiàn)代軟件開(kāi)發(fā)中,服務(wù)間通信是構(gòu)建分布式系統(tǒng)的基礎(chǔ),然而,網(wǎng)絡(luò)延遲、服務(wù)負(fù)載、資源競(jìng)爭(zhēng)等因素都可能導(dǎo)致服務(wù)調(diào)用超時(shí),TimeoutException是Java中表示服務(wù)調(diào)用超時(shí)的常見(jiàn)異常之一,本文將探討TimeoutException的成因及解決方案,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

漾濞| 乐至县| 广南县| 新余市| 博罗县| 垣曲县| 隆子县| 清丰县| 榆社县| 卢湾区| 茂名市| 阿巴嘎旗| 桓台县| 贵定县| 陇川县| 东山县| 慈利县| 大名县| 鄂尔多斯市| 博客| 木里| 正安县| 威远县| 开鲁县| 永吉县| 抚顺县| 招远市| 金川县| 民县| 鹤峰县| 安康市| 三明市| 新郑市| 博爱县| 溧阳市| 新源县| 五莲县| 牡丹江市| 莲花县| 独山县| 印江|