java抽象類和抽象方法


首先應該明確一點的是,抽象方法必須定義在抽象類中。

先看一個抽象類的定義:

public abstract class Animal {

    public abstract void eat();
    
    public abstract void sleep();
    
    public void Smile()
    {
        System.out.println("每個動物都會微笑,因為最美!");
    }

}

抽象類作為一個父類,可以定義抽象方法,也可以定義一般方法。

我們在來定義一個子類:

public class Man extends Animal{

    public void eat()
    {
        System.out.println("一天天就知道個吃");
    }
    
    public void sleep() 
    {
        System.out.println("就知道個睡");
    }
    
    public static void main(String[] args)
    {
        Man obj=new Man();
        obj.eat();
        obj.sleep();
        obj.Smile();
    }
}

子類Man繼承了抽象類,那么就必須將其抽象方法實現,是必須,必須,不然就會報錯。

 

 

抽象類和接口的區別:

子類繼承了抽象類,抽象方法必須實現,然而其他其他方法可以不實現,抽象方法中也可以定義不是抽象的方法

子類實現接口,接口中默認的方法都為抽象方法,也就不能實現,一個子類可以實現多個接口,而只能繼承一個抽象類,其實接口是抽象類中更為具體的一種類而言。

public interface TrafficTool {

    void Car();
    
    void Airport();
    
    void Train();

}

public class LandTool implements TrafficTool {

    public void Car()
    {
        System.out.println("走,咋們炸汽車去");
    }
    
    public void Airport()
    {
        System.out.println("走,咋們炸飛機去");
    }
    
    public void Train()
    {
        System.out.println("搶火車去不去,愣貨");
    }
    
    public static void main(String[] args)
    {
        LandTool obj=new LandTool();
        obj.Car();
        obj.Airport();
        obj.Train();
    }
}

 補充接口,接口不允許任何方法定義,接口和實現完美分離。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM