1. 程式人生 > 實用技巧 >物件,類,抽象類,介面

物件,類,抽象類,介面

初學,發現錯誤望指正。
AbstractClass      Class    Object
# 抽象類,類,物件,從右往左依次抽象化。將存在的例項抽象化,提取公共部分。
public abstract class Animal {}

public abstract class Dog extends Animal {}

public class Dog2Ha extends Dog {}




Interface    Interfaceimpl   Class
# 介面,介面實現,類,自左向右以此具體化。將規定好的介面具體化,延伸細節。
public interface AutoCloseable {}

public interface Closeable extends AutoCloseable {}

public final class Scanner implements Iterator<String>, Closeable{}

抽象類和介面的區別:
A:成員區別
	抽象類:
		成員變數:可以變數,也可以常量
		構造方法:有
		成員方法:可以抽象,也可以非抽象
	介面:
		成員變數:只可以常量
		構造方法:無
		成員方法:只可以抽象
		
B:關係區別
	類與類
		繼承,單繼承,多層繼承
	類與介面
		實現,單實現,多實現
	介面與介面
		繼承,單繼承,多繼承
		
C:設計理念區別
	抽象類 被繼承體現的是:”is a”的關係。抽象類中定義的是該繼承體系的共性功能。
	介面 被實現體現的是:”like a”的關係。介面中定義的是該繼承體系的擴充套件功能。
https://zhuanlan.zhihu.com/p/115768659