Java 抽象類

2018-02-20 01:37 更新

Java教程 - Java抽象類


抽象類是抽象的想法或概念。例如,int數(shù)據(jù)類型是一個(gè)具體的數(shù)據(jù)類型,double是另一個(gè)數(shù)據(jù)類型具體數(shù)據(jù)類型。 他們都是數(shù)字。 這里數(shù)字是一個(gè)抽象的概念。形狀是另一個(gè)例子。 我們可以有備用,矩形或三角形或圓形。 他們都是具體的,而形狀是一個(gè)抽象類。

在Java中,我們使用抽象類來(lái)定義抽象概念。 抽象概念必須有一些抽象方面。 例如,抽象概念是Shape,而抽象方面是如何計(jì)算面積。抽象概念在Java中變成抽象類,抽象方面成為抽象方法。


語(yǔ)法

您可以要求通過(guò)指定子類來(lái)重寫某些方法抽象類型修飾符。要聲明抽象方法,請(qǐng)使用以下一般形式:

abstract type name(parameter-list);

抽象方法沒(méi)有方法體。任何包含一個(gè)或多個(gè)抽象方法的類也必須聲明為抽象。

abstract class MyAbstractClass{
   abstract type name(parameter-list); 
}

這里是一個(gè)抽象類,后面是一個(gè)實(shí)現(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 類擴(kuò)展抽象類 Shape 并為其自身實(shí)現(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());
  }
}

輸出:

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)