2021-04-18 10:57  阅读(118)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-class-instance.html

Java面向对象设计 - Java抽象类和方法

Java可以定义一个类,其对象不能被创建。

它的目的只是表示一个想法,这是其他类的对象共有的。

这样的类称为抽象类。

语法

我们需要在类声明中使用abstract关键字来声明一个抽象类。

例如,下面的代码声明一个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();
    }
    

下面的代码展示了如何创建一个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);
      }
    }
    
    
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 抽象类和方法
上一篇
Java 继承隐藏
下一篇
Java 泛型类