学习笔记-第六章接口、lambda与内部类《Java核心卷Ⅰ》

接口

1.简单的说,接口‘就好像’是纯抽象类(严谨的说,一定要加上就好像这几个字,原因参考4),接口没有实例域–接口没有实例
类与类之间存在共同特征,将这些共同特征提取出来,形成的就是抽象类
抽象类无法创建对象,抽象类无法实例化,所以抽象类是用来被子类继承的,final和abstract两个关键字不能同时使用,这两个关键字是对立的
抽象类有构造方法,是供子类使用的
抽象方法必须出现在抽象类中

interface这个关键词取代class来声明接口,接口中的方法自动是public,不需要加关键字public,在接口实现时,一定要加public
(接口中的域都是自动声明为 public static final

抽象类就是不能创建对象的类,用关键词abstract标记一个类是抽象类
2.抽象类可以带有抽象方法和非抽象方法,抽象类的方法没有内容,抽象方法只要写到()就结束,e.g.

public abstract void func();

3.如果类带有抽象方法,那么它一定是抽象类
4.Java只能单继承(extends是继承),多继承会导致‘致命方块’问题,
致命方块:

如果A类用一个方法fun1,B类继承了A,重写fun1得到fun1’,C类继承了A,重写fun1得到fun1’’,D类多继承,同时继承B,C,D类不重写方法,那么在调用D类fun1是,会不知道到底调用的是B中的fun1’还是C中的fun1’’

Java巧妙的引入了接口,来达到多继承的效果

public class Dog extends Animal implements Pet,Saveable,(...)

extends只能有一个,implements可以有多个,不同的继承类可以实现相同的接口,extends是继承,implements是实现接口(注意语法都有‘s’)
那么,这样就通过实现接口,达到了原本期望的多重继承的效果!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值