java 抽象类 final_Java8 final关键字与抽象类
final關鍵字 最終無法改變的
final修飾的變量如果是成員變量沒有默認初始值,如果修飾局部變量可以只聲明不初始化
final 修飾類 方法 變量
final 修飾類:不能被繼承 不能有子類
final 修飾方法:不能被覆蓋
final 修飾變量:一個常量
當使用的數據不變時,定義閱讀性強的名稱來表示該數據
被final修飾的變量,名稱規范:所有字母大寫,如果由多個字母組成,通過“-”分割
public static final int NUM=1;//全局變量
抽象類
描述一個事物
都沒有足夠信息將這個事物稱為抽象事物
關鍵字 abstract
1.抽象方法一定定義在抽象類中,都要用abstract修飾
abstract class Quan{
abstract jiao();//不寫方法體 抽象類括號后直接結束語句
}
2.抽象類不能實例化,不能通過new關鍵字創建對象
只有子類覆蓋所有的父類方法時,子類具體化,子類才可以創建對象
(如果沒有覆蓋所有的抽象方法。子類因為繼承,還是抽象類無法實例化)
abstract class Quan{
abstract void jiao();
}
class dog extends Quan{
void jiao() {
System.out.println("汪");
}}
class wolf extends Quan{
void jiao
() {
System.out.println("jiao");
}}
public class AbstractDemo {
public static void main(String[] args) {
dog d=new dog();
d.jiao();
}}
抽象類也是不斷向上抽取而來的
抽取了方法聲明,而不是方法體現
方法體現由各子類詳細聲明
問題總結
抽象類中有構造方法嗎?
有 抽象類的構造函數雖然不能給抽象類對象實例化,因為抽象類不能創建對象
但是抽象類有子類,它的構造方法可以通過super();方法實例化
抽象類和一般類的異同點:
共同點:抽象類和一般類都是可以進行屬性和行為的描述
不同點:抽象類描述不具體事物,一般類描述事物具體
代碼上的不同:
抽象類可以定義抽象方法,一般類不行
一般類可以通過實例化創建對象,抽象類不行
抽象類一定要作為父類嗎?
是的,必須使用子類覆蓋父類所有抽象方法,子類才能實例化 調用方法
抽象類可以不定義抽象方法嗎?
可以 運用抽象類定義非抽象方法目的,讓方法無法被對象調用
抽象關鍵字abstract不能與哪些關鍵字共存?
final 因為final修飾的類不能有子類
private 因為私有化無法覆蓋
static 靜態后可以直接通過類名調用,抽象方法被調用沒有意義
總結
以上是生活随笔為你收集整理的java 抽象类 final_Java8 final关键字与抽象类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土豆哪里挖 如何挖出最新鲜的土豆?
- 下一篇: 注册公司没有办公地点怎么办 解决办法其