python和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;

}

// 带有分号,表示为抽象方法

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

}

}

这个 Rectangle类要实现父类Shape类中的所有抽象方法,否则会有错误出现。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值