下载APP 编程狮,随时随地学编程
返回 首页

Java 教程

Java 抽象类和方法

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);
  }
}



目录

Java 类

Java 类实例
Java 访问级别

Java 包

Java 导入

Java 方法

Java 方法
Java 方法返回
Java 方法重载
Java 实例/静态方法
Java 主方法
Java 参数传递
Java varargs方法

Java 访问

Java this关键字
Java 访问级别成员
Java final关键字

Java 创建

Java 构造函数
Java 初始化块

Java 对象

Java Object类
Java HashCode(哈希码)
Java Object.Equals方法
Java Object.toString方法
Java Object.Clone方法
Java Object.Finalize方法
Java Immutable(不可变)对象
Java Objects类

Java 内部类

Java 内部类
Java 内部类类型
Java 静态对象类
Java 内部类对象
Java 内部类成员

Java 继承

Java 继承
Java 方法重写
Java 继承和构造函数
Java 继承隐藏

Java 抽象类

Java 抽象类和方法

Java 泛型类

Java 泛型类
Java 泛型约束
Java 泛型方法和构造函数

Java 异常

Java 异常处理
Java 异常类
Java 异常抛出
Java 自定义异常
Java 终止块
Java 异常使用

Java 接口

Java 接口
Java 接口字段
Java 接口方法
Java 接口类型
Java 接口实现
Java 接口继承

Java 枚举

Java 枚举类型
Java 枚举值
Java 枚举类
Java 枚举方法
Java 枚举主体
Java 枚举比较

Java 注释

Java 注释
Java 对注释类型的限制
Java 注释默认值
Java 注释用法
Java 注释类型
Java 标准注释
Java 注释反射

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }