Java 抽象類和方法

2018-01-18 19:37 更新

Java面向?qū)ο笤O(shè)計 - Java抽象類和方法


Java可以定義一個類,其對象不能被創(chuàng)建。

它的目的只是表示一個想法,這是其他類的對象共有的。

這樣的類稱為抽象類。

語法

我們需要在類聲明中使用 abstract 關(guān)鍵字來聲明一個抽象類。

例如,下面的代碼聲明一個Shape類的抽象:

public abstract class Shape  {

}

下面的代碼為Shape類添加了一個draw()方法。

public abstract class Shape  {
    public  Shape() {
    }

    public abstract  void  draw();
}

抽象類不一定意味著它具有至少一個抽象方法。

如果一個類有一個被聲明或繼承的抽象方法,它必須被聲明為抽象。

抽象方法的聲明方式與任何其他方法相同,只是它的主體由分號表示。

例子

下面的Shape類有抽象和非抽象方法。

abstract class Shape {
  private String name;

  public Shape() {
    this.name = "Unknown  shape";
  }

  public Shape(String name) {
    this.name = name;
  }

  public String getName() {
    return this.name;
  }

  public void setName(String name) {
    this.name = name;
  }

  // Abstract methods
  public abstract void draw();

  public abstract double getArea();

  public abstract double getPerimeter();
}

下面的代碼展示了如何創(chuàng)建一個Rectangle類,它繼承自Shape類。

class Rectangle extends Shape {
  private double width;
  private double height;

  public Rectangle(double width, double height) {
    // Set the shape name as "Rectangle"
    super("Rectangle");
    this.width = width;
    this.height = height;
  }

  // Provide an implementation for inherited abstract draw() method
  public void draw() {
    System.out.println("Drawing a  rectangle...");
  }

  // Provide an implementation for inherited abstract getArea() method
  public double getArea() {
    return width * height;
  }

  // Provide an implementation for inherited abstract getPerimeter() method
  public double getPerimeter() {
    return 2.0 * (width + height);
  }
}



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號