JAVA---抽象與接口

抽象:
關鍵詞: abstract
abstract修飾的類—>抽象類
abstract修飾的方法—>抽象方法

抽象類是不能創建對象的

抽象方法是沒有實現部分的
抽象方法會強制子類去重寫抽象方法
例子

abstract class Animal{
    String name;
    int age;
    public abstract void cry();
}

這個類就是抽象類 裏面的方法也是抽象方法
注意: 抽象類裏面 可以沒有抽象方法
但是抽象方法一定要在抽象類裏面

抽象類裏面可以有變量也可以有常量
可以有成員方法 也可以有抽象方法
也有構造方法
看一下抽象類的子類

class Dog extends Animal{
    public void cry(){
    System.out.println("汪汪汪");
    }
}

我們創建了一個Animal(動物)的子類Dog(狗)
之前Animal(動物)是沒有叫的具體形式的
現在我們在子類Dog(狗)中把這個方法重新寫了一遍
並且讓Dog(狗)有了具體的叫法(汪汪汪)
這裏我們不重寫子類的方法是不行的
因爲抽象類是強制子類重寫抽象方法的
abstract與其他關鍵字

static—static修飾方法 用類名調用 abstract修飾抽象方法沒有方法的實現 那隻能是方法的聲明 不能直接調用

final—final修飾方法 是不能被重寫的 abstract修飾方法就是爲了重寫

private—private修飾方法只能本類訪問 子類無法訪問 沒有重寫

接口
用interface關鍵詞修飾

定義接口
interface 接口名{}

特點
1.只能聲明抽象方法
2.如果不寫public abstract關鍵詞修飾接口中 聲明方法
那麼系統會幫你默認添加上
3.接口也不能實例化對象(誰要用 誰就去實現接口中的方法)
4.接口的實現 使用implement關鍵字
本類 implement 要實現接口的類

成員變量:
接口中只有常量
public static final 常量名 = 初值;
當你在接口中聲明變量的時候 系統會默認是public static final

成員方法
只有抽象方法 沒有成員方法

沒有構造方法

類和類之間的關係—->單繼承 和 多層繼承
類與接口的關係—–>實現(單實現和多實現)
接口與接口的關係—->單繼承 和 多繼承
我們來寫一個接口

interface InterC{
    public static final int a = 1;
    public abstract void print();
}

class InterD implements InterC{
    public void print(){
        System.out.println(a);
    }
}

這樣就實現了InterD與InterC的接口

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