Java抽象类与接口

抽象类和接口对比

一、抽象类

提到抽象类我们需要先了解抽象方法的概念。

以图形类(Geometry类)为例,图形可以有多种类型像是矩形、三角形、圆形等等,所以从此看,图形这一概念便不是“具体”的,而是一个”抽象“的概念。而假如程序员想要使用getArea方法计算图形面积时,由于不确定图形具体是什么形状,求面积的计算方法也不一样,这便需要图形类的子类重写其getArea方法,而此方法在基类中(Java下)则需要加以abstract修饰符表明其需要在子类中重写。

//具体格式为此,getArea方法即为抽象方法
public abstract double getArea();

包含抽象方法的基类则称为抽象类(必须加abstract声明)

public abstract class Geometry{
   
    ....
}

ps:

1、抽象类可以有0个普通方法,也可以有0个抽象方法(作为新派生类的基类)

2、无论怎样抽象类都不可以创建对象实例化

3、若抽象类的子类不是抽象类,那么子类必须重写所有父类中的抽象方法

至于抽象类的优势,下举一例

public abstract class GeometryObject{
   
    
    double length;//设定图形属性(或半径或边长)
    public abstract setLength(double length);
    public abstract double getArea();
}

public class Circle extends GeometryObject{
   
    
    public abstract void setLength(double length){
   
        this.length = length;
    }
    
    public abstract void 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值