Java 接口和抽象类

目录

1、共性:

2、区别1: 与类的关系

3、问答:


接口和抽象类的区别

1、共性

不断的进行抽取,抽取出抽象的,没有具体实现的方法,都不能实例化(不能创建对象)

2、区别

(1)类与接口是实现关系,而且是多实现,一个类可以实现多个接口,类与抽象类是继承关系,Java中的继承是单一继承,多层继承,一个类只能继承一个父类,但是可以有爷爷类

(2)区别2: 成员

a.成员变量                                                                                                                                       抽象类可以有成员变量,也可以有常量                                                                                           接口只能有常量,默认修饰符public static final

b.成员方法                                                                                                                                       抽象类可以有抽象方法,也可以有非抽象方法                                                                               接口只能有抽象方法,默认修饰符 public abstract

c.构造方法                                                                                                                                       抽象类有构造方法,为子类提供                                                                                                     接口没有构造方法

d.设计层面                                                                                                                                       抽象类体现继承关系(is a),抽象类和派生类是典型的IS-A关系,即"子is-a父"。              interface可以多实现,不要求实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已,它主要描述的是类型间的行为合同,接口和它的实现类之间是典型的"CAN-DO"关系,即"子CAN-DO父"。

总结:

继承是一个 "是不是"的关系,而接口实现则是 "有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如狗是否能钻火圈,能则可以实现这个接口,不能就不实现这个接口。

3、问答

Q1:接口是否可以继承接口?                                                                                                    A1:可以。

Q2:抽象类可以实现(implement)接口吗?                                                                            A2:可以。

Q3:抽象类可以继承实体类吗?                                                                                                  A3:可以。

Q4:抽象类可以有静态的main方法吗?                                                                                      A4:可以。

Q5:抽象类与普通类的区别是?                                                                                                A5:(1)、不能创建实例对象;(2)允许有abstract方法。换言之----------抽象类是不能实例化的普通类,如果有abstract方法,必须在子类中重写。

Q6:抽象类为什么不能实例化对象?                                                                                         A6:https://zhuanlan.zhihu.com/p/95406830

Q7:abstract和final能共用吗?                                                                                                        A7:抽象类需要被继承才能使用,而被final修饰的类不能被继承,所以不能共用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值