21xrx.com
2024-12-22 22:23:24 Sunday
登录
文章检索 我的文章 写文章
关键词:Java、abstract、抽象类、继承、多态
2023-06-17 13:01:20 深夜i     --     --
Java abstract 抽象类 继承 多态

Java中的抽象类(Abstract Class)

Java中的抽象类是一种不能够被实例化的类,其目的是为了被子类继承和实现具体方法。抽象类中可以包含抽象方法和非抽象方法。抽象方法指的是没有定义具体实现的方法,而非抽象方法则是有具体实现的方法。

声明一个抽象类需要使用关键字“abstract”,并且抽象类中至少要有一个抽象方法。以下是一个简单的抽象类的定义:


public abstract class Shape {

  public abstract double getArea(); // 抽象方法

  public void printMessage() { // 非抽象方法

    System.out.println("这是一个形状。");

  }

}

抽象类在继承和多态中的应用

抽象类的主要使用场景是在继承和多态中。通过继承抽象类,子类可以继承抽象类中的抽象和非抽象方法。另外,子类还需要实现抽象类中定义的抽象方法。以下是一个简单的继承抽象类的例子:


public class Rectangle extends Shape {

  private double width;

  private double height;

  public Rectangle(double width, double height)

    this.width = width;

    this.height = height;

  

  public double getArea() {

    return width * height;

  }

}

在多态中,可以把一个子类对象赋值给父类引用类型的变量。这样做的好处是可以提高代码的灵活性和可扩展性。以下是一个简单的多态的例子:


Shape shape = new Rectangle(3, 4);

shape.printMessage();

System.out.println("面积是:" + shape.getArea());

在上述代码中,虽然shape是一个抽象类类型,但是可以通过多态的方式创建其子类对象Rectangle,并且调用其方法。

结语

抽象类是Java中非常重要的一个概念,能够在继承和多态中扮演重要角色。在实际的开发中,合理使用抽象类可以提高代码的可维护性和可扩展性。

以上是Java中抽象类的介绍和应用示例,希望对Java初学者有所帮助。

参考代码:


public abstract class Shape {

  public abstract double getArea(); // 抽象方法

  public void printMessage() { // 非抽象方法

    System.out.println("这是一个形状。");

  }

}

public class Rectangle extends Shape {

  private double width;

  private double height;

  public Rectangle(double width, double height)

    this.width = width;

    this.height = height;

  

  public double getArea() {

    return width * height;

  }

}

public class Main {

  public static void main(String[] args) {

    Shape shape = new Rectangle(3, 4);

    shape.printMessage();

    System.out.println("面积是:" + shape.getArea());

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复