Java中的繼承與接口解讀
繼承的定義
子類(lèi)繼承父類(lèi)的屬性和行為(方法),使得子類(lèi)對(duì)象可以使用父類(lèi)中的方法與屬性。
在 Java 中通過(guò) extends 關(guān)鍵字可以申明一個(gè)類(lèi)是從另外一個(gè)類(lèi)繼承而來(lái)的,一般形式如下
public class 父類(lèi){
String name;//屬性
public void study(){
System.out.println(name+"正在學(xué)習(xí)");//方法
}
}
public class 子類(lèi) extends 父類(lèi){
}每個(gè)子類(lèi)只能繼承一個(gè)父類(lèi),但可以多重繼承。
子類(lèi)可以調(diào)用直接父類(lèi)中的屬性和方法
public class Demo{
public static void main(String[] args) {
子類(lèi) st = new 子類(lèi)();
st.name = "學(xué)生";
st.study();
}
}運(yùn)行結(jié)果為:
學(xué)生正在學(xué)習(xí)
重寫(xiě)父類(lèi)中的方法
當(dāng)一個(gè)子類(lèi)中一個(gè)方法具有與其父類(lèi)中的一個(gè)方法相同的簽名(指名稱(chēng)、參數(shù)個(gè)數(shù)和類(lèi)型)和返回值時(shí),稱(chēng)子類(lèi)中的方法“重寫(xiě)”了父類(lèi)的方法。
例如:
注意:重寫(xiě)的方法具有與其所重寫(xiě)的方法相同的名稱(chēng)、參數(shù)數(shù)量、類(lèi)型和返回值。
public class 子類(lèi) extends 父類(lèi){
public void study(){
System.out.println(name+"正在努力學(xué)習(xí)");
}
}若代碼旁有綠色小三角表示,即為重寫(xiě)成功,此時(shí)運(yùn)行結(jié)果為:
學(xué)生正在努力學(xué)習(xí)
自動(dòng)轉(zhuǎn)型(向上轉(zhuǎn)型)
格式:父類(lèi)名 對(duì)象名 = new 子類(lèi)構(gòu)造方法
注意:
*自動(dòng)轉(zhuǎn)型后該對(duì)象優(yōu)先執(zhí)行子類(lèi)重寫(xiě)的方法。
*子類(lèi)中特有的方法不能調(diào)用。
public class Demo1{
public static void main(String[] args) {
父類(lèi) st2 = new 子類(lèi)();
st2.name="學(xué)生2";
st2.study();
}
}結(jié)果為:
學(xué)生2正在努力學(xué)習(xí)
強(qiáng)制轉(zhuǎn)型(向下轉(zhuǎn)型)
格式:子類(lèi)名 對(duì)象名 = (子類(lèi)名)對(duì)象
public class Demo1{
public static void main(String[] args) {
父類(lèi) st2 = new 子類(lèi)();
st2.name="學(xué)生2";
st2.study();
子類(lèi) st2 = (子類(lèi)) st21//強(qiáng)制轉(zhuǎn)型
}
}*強(qiáng)制轉(zhuǎn)型的前提是自動(dòng)轉(zhuǎn)型。
多態(tài)
在定義一個(gè)方法時(shí),參數(shù)類(lèi)型如為父類(lèi),那么繼承該父類(lèi)的子類(lèi)也可作為方法的參數(shù)類(lèi)型,例如:
public class 父類(lèi){
//參數(shù)類(lèi)型為父類(lèi)
public void study(父類(lèi) f){
System.out.println("正在學(xué)習(xí)");//方法
}
}
public class Demo2{
public static void main(String[] args) {
子類(lèi) st3 = new 子類(lèi)();
st3.study(st3);
}
}運(yùn)行結(jié)果為:
正在學(xué)習(xí)
接口
Java接口可理解為一種特殊的類(lèi)。
接口定義關(guān)鍵字:interface。
接口中的屬性均需在定義時(shí)給定初始值,因?yàn)榻涌谥械淖兞烤詭?strong>static靜態(tài)關(guān)鍵字,屬于全局共享的類(lèi)變量:
//定義接口:interface
public interface Student {
//常量
//static 靜態(tài)關(guān)鍵字
//常量通常用大寫(xiě)字母命名
public static String NAME = "1";
}接口中聲明的方法默認(rèn)是抽象方法(即只有方法標(biāo)識(shí)符,而沒(méi)有方法體)。
//定義接口:interface
public interface Student {
//常量
//static 靜態(tài)關(guān)鍵字
public static String NAME = "1";
//抽象方法
public abstract void study();
}Java中一個(gè)類(lèi)可以繼承多個(gè)接口,且繼承接口時(shí)必須重寫(xiě)接口中的所有方法。
接口繼承關(guān)鍵字:implement
接口的意義:
*彌補(bǔ)Java普通類(lèi)不支持多繼承的局限。
*接口指明了一個(gè)類(lèi)必須要做什么和不能做什么,相當(dāng)于類(lèi)的藍(lán)圖。
*接口的作用就是告訴類(lèi),你要實(shí)現(xiàn)我這種接口代表的功能,你就必須實(shí)現(xiàn)某些方法,我才能承認(rèn)你確實(shí)擁有該接口代表的某種能力。
因此在團(tuán)隊(duì)開(kāi)發(fā)中起到方法整合的作用,有利為合作開(kāi)發(fā)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)實(shí)例解析synchronized和lock區(qū)別
這篇文章主要介紹了通過(guò)實(shí)例解析synchronized和lock區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
詳解IDEA2020新建spring項(xiàng)目和c3p0連接池的創(chuàng)建和使用
C3P0是一個(gè)開(kāi)源的JDBC連接池,它實(shí)現(xiàn)了數(shù)據(jù)源和JNDI綁定,本文就使用Spring實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
通過(guò)spring boot 設(shè)置tomcat解決 post參數(shù)限制問(wèn)題
這篇文章主要介紹了通過(guò)spring boot 設(shè)置tomcat解決 post參數(shù)限制問(wèn)題,需要的朋友可以參考下2019-05-05
Java Hibernate中的多種查詢(xún)方式及示例
Hibernate提供了多種查詢(xún)方式,包括HQL查詢(xún)、SQL查詢(xún)、QBC查詢(xún)和Criteria查詢(xún)等。HQL查詢(xún)是基于面向?qū)ο蟮牟樵?xún)語(yǔ)言,可以方便地進(jìn)行對(duì)象導(dǎo)航和多表查詢(xún);SQL查詢(xún)?cè)试S用戶(hù)直接使用SQL語(yǔ)句進(jìn)行查詢(xún);QBC查詢(xún)是基于Criteria的查詢(xún),具有類(lèi)型安全和可重用性的優(yōu)勢(shì)2023-04-04
IDEA啟動(dòng)tomcat狀態(tài)404的解決
在使用Idea進(jìn)行Java?Web開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)遇到Tomcat出現(xiàn)404錯(cuò)誤的問(wèn)題,本文就來(lái)介紹了IDEA啟動(dòng)tomcat狀態(tài)404的解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
springboot 多數(shù)據(jù)源配置不生效遇到的坑及解決
這篇文章主要介紹了springboot 多數(shù)據(jù)源配置不生效遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
處理Log4j2不能打印行號(hào)的問(wèn)題(AsyncLogger)
這篇文章主要介紹了處理Log4j2不能打印行號(hào)的問(wèn)題(AsyncLogger),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

