接口与抽象类

本文详细阐述了抽象类与接口的基本概念及它们之间的区别。包括抽象类的特点、使用场景、限制条件,以及接口的设计原则、多继承特性等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象类:

1.抽象类中可以存在构造方法,可以存在普通属性、静态属性、方法、静态方法。

2.抽象类中可以存在抽象方法,也可以不存在抽象方法。

3.如果一个类中有一个抽象方法,那么此类一定是抽象类,但抽象类不一定有抽象方法。

4.抽象类中的抽象方法,需要有子类来实现,如果子类无法实现该方法,则子类需要被定义为抽象类。

5.抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰,抽象类中的抽象方法不能被private、static、synchronized、native访问修饰符修饰,可以被public protected修饰。

6.抽象类可以被其子类无条件向上转型。

 如 Abstract class A,class B extends A

 A a=new A()//编译器不会通过

A a=new B()//通过


接口

1.在接口中只有方法的声明,没有方法体。

2.在接口中只有常量,因为定义的变量,在编译的时候都会默认的加上public static final

3.在接口中的方法,只能被public来修饰

4.接口中没有构造方法,也不能实例化接口的对象

5.接口可以实现多继承

6.接口中定义的方法都需要由实现类来实现,如果实现类不能实现接口中的所有方法,则实现类被定义为抽象类

7.接口可以继承接口(extends),接口不能实现接口。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值