1.靜態(tài)是不能被繼承與覆蓋的各薇。
2.抽象類:abstract
用來描述一個(gè)事物卻無足夠信息則稱為抽象事物项贺。
abstract class 犬科
{
abstract /*抽象*/ void 吼叫();//后面無{}
}
3.面對(duì)抽象的事物,雖然不具體得糜,但是可以簡(jiǎn)單化敬扛。
特點(diǎn):
a.抽象方法一定定義在抽象類中,都需要abstract
b.抽象類不能實(shí)例化朝抖,不能用new創(chuàng)建對(duì)象
c.只有子類覆蓋了所有的抽象方法啥箭,子類就可以創(chuàng)建對(duì)象
d.如果子類沒有覆蓋所有方法,就沒法實(shí)例化治宣,還是一個(gè)抽象類急侥。
抽象類也是不斷向上抽取而來,抽取了方法的申明而不確定具體的方法內(nèi)容侮邀,讓不同的子類來確定具體的方法內(nèi)容坏怪。
4.問題:抽象類中有構(gòu)造函數(shù)嗎?
答:有绊茧,抽象類的構(gòu)造函數(shù)雖然不能給抽象類對(duì)象實(shí)例化铝宵,因?yàn)槌橄箢惒荒軇?chuàng)建對(duì)象,但抽象類有子類华畏,它的構(gòu)造函數(shù)可以子類來實(shí)例化捐祠。
5.抽象類和一般類的異同?
相同:都是用來描述事務(wù)歧譬,都可以進(jìn)行屬性和行為的描述驹饺。
不同:抽象類描述事物的信息不具體祠乃,一般類描述的事務(wù)的信息具體。
代碼的不同:抽象類中可以定義抽象方法仑乌,一般類不行百拓。抽象類不可以實(shí)例化琴锭,一般類可以。
6.抽象類一定是父類嗎衙传?
是的决帖,必須子類覆蓋方法后,才可以實(shí)例化蓖捶,才可以使用古瓤。
7.抽象類可以不定義抽象方法,僅僅是讓該類不能創(chuàng)建的對(duì)象
8.抽象類關(guān)鍵字abstract不能與哪些關(guān)鍵字共存腺阳?
final ;final方法不能被覆蓋
private穿香;
static亭引;
9.接口:interface
抽象類中所有方法都是抽象的,可用另一種形式的接口來表示
定義接口:
interface Inter
{
(public static final) int NUM=4;
public abstract void show( );
}
接口中的成員和class定義的不同之處:
接口中常見的成員有兩種: 1皮获,全局變量 2.抽象方法
而且都有固定的修飾符焙蚓,共性:成員都是public修飾的
10.接口的特點(diǎn):
a.不可實(shí)例化。
b.需要覆蓋接口所有抽象方法的子類才可以實(shí)例化洒宝,否則子類還是一個(gè)抽象類购公。
c.接口是用來被實(shí)現(xiàn)的。
11.類與接口之間是實(shí)現(xiàn)關(guān)系
class Demo implements/*實(shí)現(xiàn)*/ Inter
{
public void show( ){ }//必須覆蓋
}
12 .接口解決的問題雁歌?
多繼承 好處:可以讓子類具備更多功能宏浩。 弊端:調(diào)用的不確定性。
java中不直接支持多繼承靠瞎,而是改良通過接口來解決比庄,將多繼承轉(zhuǎn)換成了多實(shí)現(xiàn)。
class SubInter implement InterA,InterB//多實(shí)現(xiàn){ }
13.好處:接口的好處在于一個(gè)類繼承一個(gè)類的同時(shí)乏盐,還可以實(shí)現(xiàn)多個(gè)接口佳窑,避免了單繼承的局限性。
集成式味蕾獲取體系的基本功能父能,想要擴(kuò)展功能可以通過接口來完成神凑。
類與類之間 -繼承關(guān)系:is a;
類與接口之間 -實(shí)現(xiàn)關(guān)系:like a何吝;
接口與接口之間關(guān)系:是繼承關(guān)系溉委,接口可以支持多繼承。
15.問題:只需要接口的部分功能怎么辦呢岔霸?
為了方便創(chuàng)建Inter接口中的子類對(duì)象薛躬,可以用一個(gè)類先把接口中的方法都空實(shí)現(xiàn),該類創(chuàng)建對(duì)象沒有意義呆细,故可以使其抽象型宝。這就是沒有抽象方法的抽象類八匠。
16.接口的思想:
(筆記本電腦的nsb接口)
a.接口的出現(xiàn)擴(kuò)展了功能(可以一直擴(kuò)展)
b.接口其實(shí)就是暴露出來的規(guī)則。
c.接口的出現(xiàn)降低了耦合性趴酣。接口——解耦
接口的出現(xiàn):一方在使用接口梨树,一方在實(shí)現(xiàn)接口。
17.抽象類與接口:
緝毒犬是犬中的一種岖寞, is a關(guān)系抡四。
犬用于描述所有功能犬的基本功能,用class 父類仗谆,所以犬不適合定義成接口指巡。
而具備緝毒功能的有很多,緝毒需要抽取隶垮,不能定義成類因?yàn)轭惒荒芏嗬^承藻雪,所以得用接口,
Class 緝毒犬 extends 犬 implements 緝毒
18.總結(jié):
類用于描述的是事物的共性基本功能狸吞。
接口用于定義的是事務(wù)的額外功能勉耀。
接口一是為了多個(gè)事物可以共用這個(gè)額外功能。
各種豬的共性用類蹋偏,緝毒豬和緝毒犬的共性緝毒用接口便斥。
19.抽象與接口如何區(qū)別?
a.類與類的繼承關(guān)系是is a威始,類與接口是like a(緝毒豬是豬而不是緝毒)
b.類中定義的抽象和非抽象方法子類可以直接使用或者覆蓋使用枢纠;接口中都是抽象方法,必須全實(shí)現(xiàn)才可以用黎棠。