java抽象類和抽象方法

抽象類就是不能使用new方法進行實例化的類,即沒有具體實例對象的類。抽象類有點類似“模板”的作用,目的是根據其格式來創建和修改新的類。對象不能由抽象類直接創建,只可以通過抽象類派生出新的子類,再由其子類來創建對象。當一個類被聲明爲抽象類時,要在這個類前面加上修飾符abstract

    在抽象類中的成員方法可以包括一般方法和抽象方法。抽象方法就是以abstract修飾的方法,這種方法只聲明返回的數據類型、方法名稱和所需的參數,沒有方法體,也就是說抽象方法只需要聲明而不需要實現。當一個方法爲抽象方法時,意味着這個方法必須被子類的方法所重寫,否則其子類的該方法仍然是abstract的,而這個子類也必須是抽象的,即聲明爲abstract。

    抽象類中不一定包含抽象方法,但是包含抽象方法的類一定要被聲明爲抽象類抽象類本身不具備實際的功能,只能用於派生其子類。抽象類中可以包含構造方法,但是構造方法不能被聲明爲抽象。

    抽象類不能用final來修飾,即一個類不能既是最終類又是抽象類。

    abstract不能與privatestaticfinalnative並列修飾同一個方法。

    程序舉例:

abstract class Animal    //定義抽象類
{
    String str;

    Animal(String s)     //定義抽象類的一般方法
   {

        str=s;

   }

    abstract void eat();      //定義抽象方法

}

class Horse extends Animal     //定義繼承Animal的子類
{  

    String str;

    Horse(String s)
   {

      super(s);      //調用父類的構造方法

   }

    void eat()      //重寫父類的抽象方法
   {     

      System.out.println("馬吃草料!");

   }

}

class Dog extends Animal
{

    String str;

    Dog(String s)
   {

      super(s);

    }

    void eat()
    {

    System.out.println("狗吃骨頭!");

    }

}

class test
{

    public static void main(String args[])
   {

      Horse Horse1 = new Horse("馬");

      Dog Dog1 = new Dog("狗");

      Horse1.eat();

      Dog1.eat();

    }

}

運行結果:

    馬吃草料!

    狗吃骨頭!

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