java抽象和接口

一、抽象

1.抽象類
1)含義:

如果一個類不於具體的事物相聯繫,而只是表達一種抽象的概念,僅作爲其派生類的一個基類。(抽象類作爲父類,主要定義功能而已,具體的實現交給派生類)。抽象類可以包含構造函數,但並不是用來實例化對象。

2)語法:

abstract class 類名{}

3)規則

----抽象類可以包含抽象方法,也可以包含非抽象方法。
----抽象類不能被實例化
----抽象類只能被繼承
----普通類中不能定義抽象方法
----有抽象方法的類一定是抽象類
----可以定義靜態方法

4)抽象方法

----語法:abstract 方法名();
----抽象方法沒有方法體
----子類必須實現全部的父類抽象方法

二、面試題

1.java的“一次編寫,處處運行”是如何實現的
這是指跨平臺性,是靠Java虛擬機實現的。
2.a = a + b;與 a +=b;的區別
前者在計算的時候=右側會轉化爲int類型,需要顯示強制類型轉化
後者底層已經實現強制類型轉化,無需顯示強制類型轉化
short a = 5,b = 6;
a = (short)(a+b);
a += b;

三、接口

1.API接口:

Application Program Interface 應用程序接口

2.接口
1)含義:

接口是對一組方法的聲明。

2)目的:

爲了解決Java不支持多繼承的問題。

3)接口可以將不同的類或者不同層次的類具有的相同的行爲集合在一起。
4)規則:

----接口的方法都是抽象方法,默認帶public abstract
----接口中的屬性都是常量,默認省略了public static final
----接口中沒有構造器,接口不能被實例化
----接口中的方法要全部實現
----接口是多態的一種實現方式
----如果使用多個接口,中間使用逗號隔開 A implements B,C
----接口可以繼承接口,如果想要繼承多個接口,中間使用多個接口隔開 A extends B,C
----實現類如果不想實現接口中的方法,可以將此類定義爲抽象類
----不能定義靜態方法

5)優點:

----降低了類和類之間的依賴關係。
----提升了程序的可擴展性。
----接口提供了一種標準。JDBC

3.實現類

1)實現接口的類 keyboard implement USB
2)實現類要實現接口中定義的所有抽象方法
3)如果一個類繼承了一個父類,同時要實現一個接口,那麼繼承父類一定是在前面
A extens B implements C;

4.hashCode

1)任何類都是Object的間接或者直接子類
2)hashCode():將該對象的內存地址轉化爲一個整數來實現
3)如果兩個對象值相等,則一定有相同的hashCode x.equals(y)

5.面試題

1.什麼是序列化和反序列化?
2.兩個對象的hashCode()相同,則equals()也一定爲true,對嗎?
3.==和equals()的區別?
4.new對象和clone()對象
5.爲什麼java不是100%面向對象?
6.接口和抽象類的區別?
7.什麼是拆箱和裝箱?
8.靜態方法和實例方法有什麼不同?
9.Java中垃圾回收的目的,什麼時候進行垃圾回收?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章