比较 Java抽象类与接口

本文介绍了抽象方法、抽象类和接口在面向对象编程中的作用。抽象方法用于定义公共行为但不提供具体实现,常在父类中声明。抽象类包含抽象方法,不能被实例化,子类必须实现所有抽象方法。接口则是一种完全抽象的契约,只包含公共、抽象方法,一个类可以实现多个接口。接口继承也遵循单一继承原则,但能继承多个接口。这些概念促进了代码的模块化和扩展性。
摘要由CSDN通过智能技术生成

抽象方法 

       举个例子:
       图像类(Geometry类)作为矩形和圆形等具体形状类的共同父类,是一种抽象的概念。它的getArea方法功能是计算图形的面积,由于不知道计算图形的具体形状,所以getArea方法的方法体实际上没有实际意义。所以Geometry类的每个子类都要重写父类的getArea方法

        解决办法:通过abstract关键字将getArea方法修饰为抽象的,此时的方法称为抽象方法。

 访问修饰符 abstract 返回类型 方法名(参数列表);
  public       abstract  void       getArea();

抽象类

       若类含有抽象方法,则类必须以abstract关键字声明为抽象类。
       public abstract class 类名
       不论抽象类是否含抽象方法,其都不允许实例化
       若父类是抽象类,且子类不想成为抽象类,则子类必须将父类中的所有抽象方法重写为带方法体的普通方法,否则子类仍必须是抽象类。

接口

public interface 接口名称
{
     (方法头...)
}

接口中的所有方法都是public,抽象方法。 一个类可以实现一个或者多个接口。

目的:为了给其他类提供行为说明。

属性:在接口中的所有属性都为 public、final 和 static. 因为他们会自动地变为 final, 所以你必须为它们提供初始化值。

实现:如果一个类要实现接口,它需要在类头中使用implements 关键字。
        一个接口:public class RubberDuck extends Duck implements Quackable

        多个接口:public class MyClass implements Interface1,
                                                                                    Interface2,  
                                                                                    Interface3

继承接口:
[public] interface 接口名 extends 父接口1,父接口2,...{
               //字段和抽象方法
}

接口只能继承接口,而不能继承类。 与类的继承类似,接口的继承也表达了“is-a”的逻辑。

相同点:

都是Java提供的对现实世界中的实体进行抽象的两种机制。
1.不能被实例化
2.在接口中所列的所有方法必须在别处被重写

不同点:

接口中关键字interface 替换了关键字 class, 以及 接口中的方法只有方法头加分号结尾,没有方法主体。

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值