W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
抽象類是抽象的想法或概念。例如,int數(shù)據(jù)類型是一個具體的數(shù)據(jù)類型,double是另一個數(shù)據(jù)類型具體數(shù)據(jù)類型。 他們都是數(shù)字。 這里數(shù)字是一個抽象的概念。形狀是另一個例子。 我們可以有備用,矩形或三角形或圓形。 他們都是具體的,而形狀是一個抽象類。
在Java中,我們使用抽象類來定義抽象概念。 抽象概念必須有一些抽象方面。 例如,抽象概念是Shape,而抽象方面是如何計算面積。抽象概念在Java中變成抽象類,抽象方面成為抽象方法。
您可以要求通過指定子類來重寫某些方法抽象類型修飾符。要聲明抽象方法,請使用以下一般形式:
abstract type name(parameter-list);
抽象方法沒有方法體。任何包含一個或多個抽象方法的類也必須聲明為抽象。
abstract class MyAbstractClass{ abstract type name(parameter-list); }
這里是一個抽象類,后面是一個實現(xiàn)其抽象方法的類。
abstract class MyAbstractClass { abstract void callme(); void callmetoo() { System.out.println("This is a concrete method."); } } class B extends MyAbstractClass { void callme() { System.out.println("B"s implementation of callme."); } } public class Main { public static void main(String args[]) { B b = new B(); b.callme(); b.callmetoo(); } }
輸出:
下面的代碼將 Shape
類定義為abstract。 shape 類有抽象方法稱為area()。 Rectangle
類擴展抽象類 Shape
并為其自身實現(xiàn)area()方法。
abstract class Shape { double height; double width; Shape(double a, double b) { height = a; width = b; } abstract double area(); } class Rectangle extends Shape{ Rectangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Rectangle."); return height * width; } } class Triangle extends Shape{ Triangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Triangle."); return height * width / 2; } } public class Main { public static void main(String args[]) { Rectangle r = new Rectangle(10, 5); Triangle t = new Triangle(10, 8); Shape figref; figref = r; System.out.println("Area is " + figref.area()); figref = t; System.out.println("Area is " + figref.area()); } }
輸出:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: