抽象类与接口

抽象类
不需要去实例化(没有实例化必要的类)就可以作为一个抽象类
没有方法体,只是为了被子类重写的方法就可以作为一个抽象方法
抽象类前加上abstract此时这就是一个抽象类,如果产生过hi创建抽象类的实例就是编译报错
给方法前加一个abstract此时该方法就是抽象方法不需要方法体
抽象方法只能再抽象类和接口中存在不能在普通类中存在
抽象方法存在的意义就是为了让子类进行重写
abstract关键字存在的意义就是让程序员明确的告诉编译器,这是一个抽象类,冰盖进行实例化,于是比那一起就i要做好相关的检查工作
抽象类可以有普通的属性和方法,也可以有静态的属性和方法。
也可以继承其他的类,也可以被其他类所继承。
接口
接口时抽象类的更进一步(比抽象类还抽象)
抽象类只是不能实例化,但是其他方面与普通类一样。
接口更抽象,不但不能实例化,也不具备类的各种特性。
interface 表示接口,接口中也可以放抽象方法,这里的抽象方法,不必写abstract关键字(写不写都是抽象方法)
接口不能写普通方法
在接口中的变量时静态公有的常量
接口不能继承其他的类,但是可以继承其他的接口
接口不能被类结成,而是被其他类“实现”
实现的关键字 implements

抽象类和接口的对比:
1.抽象类和普通类差不多,只是不能实例化。而接口和普通类之间相差甚远(包含的属性方法和其他类的关系)
2.一个类只能继承自一个抽象类,但是一个类可以同时实现多个接口。
为什么要发明接口?
解决Java中不能多继承的问题
java的继承时单继承,有些场景下多继承
是有用的,Java中可以实通过继承一个类
实现多个接口的方式来完成类似多继承的
效果
单继承,多接口
接口存在的意义,既能实现剋四多继承的效果,同时又能规避多继承带来的问题。

接口可以继承接口(更准确的说是,组合)在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值