Java的覆寫操作實(shí)例分析
本文實(shí)例講述了Java的覆寫操作。分享給大家供大家參考,具體如下:
一 屬性覆寫
1 點(diǎn)睛
所謂屬性覆寫,指的是子類定義和父類定義之中名稱相同的屬性。
2 代碼
class Book
{
String info = "Hello World." ; // 如果加上private,1處的代碼就會(huì)編譯不過
}
class ComputerBook extends Book
{
int info = 100 ; // 屬性名稱相同
public void print()
{
System.out.println(info) ;
System.out.println(super.info) ; // 1處代碼
}
}
public class OverrideData
{
public static void main(String args[])
{
ComputerBook cb = new ComputerBook() ; // 實(shí)例化子類對象
cb.print() ;
}
}
3 運(yùn)行
100
Hello World.
4 說明
該代碼沒有太大的意義,它并沒有實(shí)現(xiàn)真實(shí)的覆寫。為了滿足類的封裝型,類中的屬性一般都需要private封裝,一旦封裝之后,子類根本就“看不見”父類的屬性成員,子類定義的同名屬性成員,其實(shí)就是一個(gè)“全新的”數(shù)據(jù)成員,所謂的覆寫操作就沒意義了。
二 super調(diào)用父類方法
1 點(diǎn)睛
子類中可以通過super.方法()調(diào)用父類中被覆寫的方法。
2 代碼
class Person
{
String name;
int age;
public String talk( )
{
return "I am " + this.name + ", I am " + this.age + " years old";
}
}
class Student extends Person
{
String school;
public Student( String name, int age, String school )
{
// 分別為屬性賦值
this.name = name; //super.name = name;
this.age = age; //super.age = age;
this.school = school;
}
// 此處覆寫Person中的talk()方法
public String talk( )
{
return super.talk()+ ", I am from " + this.school ;
}
}
public class Override2
{
public static void main( String[] args )
{
Student s = new Student( "Jack ", 25, "HAUT" );
// 此時(shí)調(diào)用的是子類中的talk()方法
System.out.println( s.talk() );
}
}
3 運(yùn)行
I am Jack , I am 25 years old, I am from HAUT
4 說明
在完成方法覆寫時(shí),需要注意以下幾點(diǎn):
- 覆寫方法的返回類型必須和被覆寫的方法的返回類型一致。
- 被覆寫的方法不能為static。
- 被覆寫的方法不能擁有比父類更嚴(yán)格的訪問控制權(quán)限。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
java swing 實(shí)現(xiàn)加載自定義的字體
這篇文章主要介紹了java swing 實(shí)現(xiàn)加載自定義的字體,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot Actuator未授權(quán)訪問漏洞的排查和解決方法
Spring Boot Actuator 是開發(fā)和管理生產(chǎn)級 Spring Boot 應(yīng)用程序的重要工具,它可以幫助你確保應(yīng)用程序的穩(wěn)定性和性能,本文給大家介紹了SpringBoot Actuator未授權(quán)訪問漏洞的排查和解決方法,需要的朋友可以參考下2024-05-05
Java中的super關(guān)鍵字_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java中的super關(guān)鍵字的相關(guān)知識,需要的朋友參考下2017-04-04
SpringBoot與SpringMVC中參數(shù)傳遞的原理解析
這篇文章主要介紹了SpringBoot與SpringMVC中參數(shù)傳遞的原理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
java?數(shù)組越界判斷和獲取數(shù)組長度的實(shí)現(xiàn)方式
這篇文章主要介紹了java?數(shù)組越界判斷和獲取數(shù)組長度的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
詳細(xì)聊一聊JavaWeb中的Request和Response
這篇文章主要給大家介紹了關(guān)于JavaWeb中Request和Response的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
Java中BM(Boyer-Moore)算法的圖解與實(shí)現(xiàn)
本文主要介紹了兩個(gè)大的部分,第一部分通過圖解的方式講解BM算法,第二部分則代碼實(shí)現(xiàn)一個(gè)簡易的BM算法,感興趣的小伙伴可以學(xué)習(xí)一下2022-05-05

