抽象类和接口

1.接口

        所有接口中的方法必须是public

1.1    interface中的方法默认为public static 的(用其他关键字,比如private、protected、static、final等修饰会报编译错误。

1.2    变量默认为public static final (并且只能是public static final变量,用private修饰会报编译错误)

1.3    接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法

1.4    允许一个类遵循多个特定的接口

2.抽象类

        包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通成员方法。注意,抽象类和普通类的主要区别有三点:

1)抽象方法必须未public 或者protected (因为要被继承)

2)抽象类不能用来创建对象

3)如果一个类继承了一个抽象类,则子类必须实现父类的抽象方法或者子类也为抽象类

4)如果抽象类中没有实现接口中的方法,那么其子类必须实现接口中的方法,否则编译不通过

3.抽象类和接口的区别

1.1    语法层面上的区别

1)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

2)抽象类中的成员变量可以是各个类型的,而接口中的成员变量只能是 public static  final 类型的;抽象类中的方法可以是 public 或者 protected ,而接口只能是public 类型。

3)抽象类可以提供成员方法的实现细节,而接口不能有具体的实现细节;

4)接口中不能含有静态代码块以及静态方法,而抽象类可以有;

5)实现接口必须实现接口中的所有方法,而抽象类可以只继承某一个方法即可,但抽象类的抽象方法必须全部继承 (本质为类和接的区别  )

1.2    设计层面上的区别

1)抽象类是对一种事物的抽象,即对类抽象(如果一个类继承了某个抽象类,则子类必须是抽象类的种类),而接口是对行为的抽象(接口实现是有没有、具备不具备的关系)

2)抽象类作为很多子类的父类,它是一种设计模板。接口是一种行为规范


相关问题:

在Java中,接口可以继承接口吗?

不仅可以继承,还可以多继承。可以用来扩展功能,这样不用修改父接口,方便维护。


抽象类和接口的综合使用:

在适配器模式下,一般让抽象类简单实现接口的某些方法,这样继承与抽象类的普通类就不用去实现接口中的所有方法了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值