W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
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); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: