淺談Java抽象類
##抽象類
####1、抽象類和抽象方法簡述
#####1、抽象類和抽象方法語法
抽象類和抽象方法必須要用abstract修飾符修飾
例如:
抽象類:
public abstract class Person {
//程式碼
}
抽象方法:
public abstract void print();
#####1、抽象類和抽象方法關係
抽象類不一定有抽象方法,但是有抽象方法的要麼是抽象類,要麼是介面。說明:一個類中如果有抽象方法、那麼這個類一定要宣告為抽象類。
####2、例項化問題
抽象類可以有自己的構造方法,但是不能直接通過new進行例項化但不能說是抽象類就無法例項化。
抽象類其實是可以例項化的,但是它的例項化是通過父類的引用來指向子類的例項,來間接地實現父類的例項化(因為子類要例項化前,一定會先例項化他的父類。這樣建立了繼承抽象類的子類的物件,也就把其父類(抽象類)給例項化了)。
####3、子類
兩種情況:要麼子類本身就是一個抽象類、要麼子類重寫了抽象類中的所有抽象方法。
####4、成員特點
①成員變數:抽象類中既可以是變數也可以是常量,但是abstract不能修飾成員變數。②構造方法:既可以有無參構造方法,也可以有有參構造方法;作用:用於子類訪問父類資料的初始化。舉例如下:
public abstract class Person {
private String name;
// 程式碼
public Person() {
super();
}
public Person(String name) {
super();
this.name = name;
}
public abstract void print();
}
③:成員方法:既可以是抽象方法,也可以是非抽象方法。
####問題
1、abstract不能和哪些關鍵字共存?
1)abstract 和 static 不能共存:
被abstratc修飾的抽象方法是沒有方法體的;而被static修飾的方法是可以用類名直接去呼叫的,用類名呼叫抽象方法是沒有意義的。
2)abstract 和 final 不能共存:
被abstract修飾的方法是強制子類重寫的;而被final修飾的方法是不能被子類重寫的,自相矛盾;
3)abstract 和 private
被abstract修飾的方法是強制子類重寫的;而被private修飾的方法是不能被子類重寫的,自相矛盾
相關文章
- 淺談java內部類Java
- Java 抽象類Java抽象
- 淺談Java中的內部類Java
- Java的抽象類 & 介面Java抽象
- 淺談 Trait 類AI
- Java —— 流的抽象基類Java抽象
- JAVA物件導向--抽象類Java物件抽象
- java中抽象類和介面Java抽象
- 淺談 Java集合Java
- Java 的抽象類, 介面以及內部類Java抽象
- Java總結-抽象類與介面Java抽象
- Java基礎-抽象類和介面Java抽象
- java中的抽象類與介面Java抽象
- Java抽象類和介面 小白版Java抽象
- Java之繼承和抽象類Java繼承抽象
- Java的抽象類與介面理解Java抽象
- 淺談java泛型Java泛型
- 淺談Java迭代器Java
- 淺談Java併發Java
- 淺談 Dart 類與類的基本方法Dart
- 淺談Java類中的變數初始化順序Java變數
- 抽象方法和抽象類抽象
- 人工智慧分類淺談人工智慧
- 抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 淺談Java中的HashmapJavaHashMap
- 淺談Java序列化Java
- Java API 操作Docker淺談JavaAPIDocker
- 淺談java中的反射Java反射
- 淺談Java的反射原理Java反射
- java介面和抽象類的簡單理解Java抽象
- java中的抽象類abstract怎麼使用?Java抽象
- Java中抽象類和介面的區別Java抽象
- JAVA基礎之三-介面和抽象類Java抽象
- Java中抽象類與介面的區別Java抽象
- Java中的介面與抽象類詳解Java抽象
- 深度聚類演算法淺談聚類演算法
- 談談 Java 類載入機制Java