Java 抽象類

20170405發表於2020-08-04

  1、抽象類:使用abstract修飾的類

  抽象方法:使用abstract修飾的方法

  包含抽象方法的類必須是抽象類,但是抽象類可以不包含抽象方法。

  抽象類是需要被繼承的,抽象方法是需要被重寫的,建議重寫抽象類中的所有方法(包含非抽象方法)。

  抽象類是不能被例項化的,只能進行繼承,然後向上造型該類,實現不同的行為。

  抽象方法只有方法的定義,沒有具體的實現,需要被重寫。

  2、抽象類的意義:

  封裝共有的行為和屬性(程式碼複用)

  為所有的派生類提供統一的型別(向上造型)

  可以包含首項方法,為所有派生類提供統一的入口,派生類的具體實現不同,但是入口是一致的。

  3、類的設計規則:

  將派生類的共有屬性和行為,抽到超類中。

  派生類的行為都一樣,設計為普通方法。

  派生類的行為都不一樣,設計為抽象方法,需要派生類進行繼承然後重寫。

  4、抽象類的例子:

  public abstract class Color{

  public void show(){

  }

  }

  class Red extends Color{

  public void show(){

  System.out.println("我是紅色");

  }

  }

  class Blue extends Color{

  public void show(){

  System.out.println("我是藍色");

  }

  }

  1234567891011121314

  public class Demo{

  public static void main( String[] args){

  Color c1 = new Red();

  Color c2 = new Blue();

  c1.show();

  c2.show();

  }

  }

  12345678

  輸出:

  我是紅色

  我是藍色

  12

  5、抽象方法的例子:

  public abstract class Teacher{//抽象類

  abstract public void teaching();//抽象方法

  }

  public MathTeacher extends Teacher{    

  @Override

  public void teaching(){//重寫抽象方法

  System.out.println("數學老師講課");

  }

  }

  public EnglishTeacher extends Teacher{

  @Override

  public void teaching(){//重寫抽象方法

  System.out.println("英語老師講課");

  }

  }

  123456789101112131415

  public class Demo{

  public static void main(String[] args){

  Teacher lee = new MathTeacher();

  Tacher tom = new EnglishTeacher();

  lee.teaching();

  tom.teaching();

  }

  }

  12345678

  輸出:

  數學老師講課

  英語老師講課


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979119/viewspace-2709058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章