栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java抽象类与接口的异同点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java抽象类与接口的异同点

一、抽象类

抽象方法:通过abstract关键字将某种方法(比如:一个类中的getArea()方法)修饰为抽象的,此时的方法称为抽象方法。它是一种出现在基类的方法,但要求在派生类中被重写。

一个抽象方法只有方法头,没有方法主体:

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

注意:关键字abstract出现在方法投中,方法头以分号结尾。

  • 包含抽象方法的类就会自动变成抽象类,因此必须以abstract关键字声明。
  • 如果派生类没有重写抽象方法,编译器会报错。
  • 抽象方法被用来确保派生类会实现这个方法。

抽象类:若类含有抽象方法,则类必须以abstract关键字声明为抽象类。

public abstract class 类名

  • 抽象类可以含零至多个普通方法,也可以含零至多个抽象方法。
  • 不论抽象类是否含抽象方法,其都不允许实例化。即抽象类不能用来创建对象(因为抽象类中含有无具体实现的方法)。它只能作为其他类的基类。
  • 若父类是抽象类,且子类不想成为抽象类,则子类必须将父类中的所有抽象法重写为带方法体的普通方法,否则子类仍必须是抽象类。
  • 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
二、接口

接口定义的通用格式:
public interface 接口名称{
        (方法头......)

}

接口的目的是为了给其他类提供行为说明 

一个接口看起来就像一个类,除了关键字interface替换了关键字class,以及接口中的方法只有方法头加分号结尾,没有方法主体。

  • 接口中的所有方法都是public,抽象方法。
  • 一个类可以实现一个或者多个接口。
  • 接口和所有方法都是抽象方法的抽象类非常相似。它不能被实例化,而且在接口中所列的所有方法必须在别处被重写。

接口中的属性:在接口中的所有属性都为public、final和static

接口的实现:如果一个类要实现接口,他需要在类头中使用implements关键字。

实现多个接口:

  • Java 允许一个类实现多个接口。
  • 当一个类实现多个接口,它必须实现所有接口中的方法。
  • 如果一个类要实现多个接口,需要写上关键字implements,并列出接口的名字,接口名之间用逗号分隔。

public class MyClass implements Interface1,

                                                      Interface2,

                                                      Interface3

  • 接口只能继承接口,而不能继承类。
  • 与类的继承类似,接口的继承也表达了“is-a”的逻辑。
  • 与类只能继承一个父类不同,接口可以继承多个父接口。
三、抽象类与接口类的比较

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号