Java中的繼承與接口解讀
繼承的定義
子類繼承父類的屬性和行為(方法),使得子類對象可以使用父類中的方法與屬性。
在 Java 中通過 extends 關(guān)鍵字可以申明一個類是從另外一個類繼承而來的,一般形式如下
public class 父類{
String name;//屬性
public void study(){
System.out.println(name+"正在學習");//方法
}
}
public class 子類 extends 父類{
}每個子類只能繼承一個父類,但可以多重繼承。
子類可以調(diào)用直接父類中的屬性和方法
public class Demo{
public static void main(String[] args) {
子類 st = new 子類();
st.name = "學生";
st.study();
}
}運行結(jié)果為:
學生正在學習
重寫父類中的方法
當一個子類中一個方法具有與其父類中的一個方法相同的簽名(指名稱、參數(shù)個數(shù)和類型)和返回值時,稱子類中的方法“重寫”了父類的方法。
例如:
注意:重寫的方法具有與其所重寫的方法相同的名稱、參數(shù)數(shù)量、類型和返回值。
public class 子類 extends 父類{
public void study(){
System.out.println(name+"正在努力學習");
}
}若代碼旁有綠色小三角表示,即為重寫成功,此時運行結(jié)果為:
學生正在努力學習
自動轉(zhuǎn)型(向上轉(zhuǎn)型)
格式:父類名 對象名 = new 子類構(gòu)造方法
注意:
*自動轉(zhuǎn)型后該對象優(yōu)先執(zhí)行子類重寫的方法。
*子類中特有的方法不能調(diào)用。
public class Demo1{
public static void main(String[] args) {
父類 st2 = new 子類();
st2.name="學生2";
st2.study();
}
}結(jié)果為:
學生2正在努力學習
強制轉(zhuǎn)型(向下轉(zhuǎn)型)
格式:子類名 對象名 = (子類名)對象
public class Demo1{
public static void main(String[] args) {
父類 st2 = new 子類();
st2.name="學生2";
st2.study();
子類 st2 = (子類) st21//強制轉(zhuǎn)型
}
}*強制轉(zhuǎn)型的前提是自動轉(zhuǎn)型。
多態(tài)
在定義一個方法時,參數(shù)類型如為父類,那么繼承該父類的子類也可作為方法的參數(shù)類型,例如:
public class 父類{
//參數(shù)類型為父類
public void study(父類 f){
System.out.println("正在學習");//方法
}
}
public class Demo2{
public static void main(String[] args) {
子類 st3 = new 子類();
st3.study(st3);
}
}運行結(jié)果為:
正在學習
接口
Java接口可理解為一種特殊的類。
接口定義關(guān)鍵字:interface。
接口中的屬性均需在定義時給定初始值,因為接口中的變量均自帶static靜態(tài)關(guān)鍵字,屬于全局共享的類變量:
//定義接口:interface
public interface Student {
//常量
//static 靜態(tài)關(guān)鍵字
//常量通常用大寫字母命名
public static String NAME = "1";
}接口中聲明的方法默認是抽象方法(即只有方法標識符,而沒有方法體)。
//定義接口:interface
public interface Student {
//常量
//static 靜態(tài)關(guān)鍵字
public static String NAME = "1";
//抽象方法
public abstract void study();
}Java中一個類可以繼承多個接口,且繼承接口時必須重寫接口中的所有方法。
接口繼承關(guān)鍵字:implement
接口的意義:
*彌補Java普通類不支持多繼承的局限。
*接口指明了一個類必須要做什么和不能做什么,相當于類的藍圖。
*接口的作用就是告訴類,你要實現(xiàn)我這種接口代表的功能,你就必須實現(xiàn)某些方法,我才能承認你確實擁有該接口代表的某種能力。
因此在團隊開發(fā)中起到方法整合的作用,有利為合作開發(fā)。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Maven循環(huán)依賴問題及解決過程
這篇文章主要介紹了關(guān)于Maven循環(huán)依賴問題及解決過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-07-07
Java 實現(xiàn)并發(fā)的幾種方式小結(jié)
這篇文章主要介紹了Java 實現(xiàn)并發(fā)的幾種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
Spring中ApplicationEventPublisher發(fā)布訂閱模式的實現(xiàn)
本文主要介紹了Spring中ApplicationEventPublisher發(fā)布訂閱模式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
SpringBoot開發(fā)案例之配置Druid數(shù)據(jù)庫連接池的示例
本篇文章主要介紹了SpringBoot開發(fā)案例之配置Druid數(shù)據(jù)庫連接池的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

