《Head First Java》笔记

笔记只记录自己学习时遇到的重点(复习),全文参考《Head First Java》

第三天

一、抽象类与接口

1、抽象类
编译器不会初始化抽象类
抽象类除了被继承过之外,是没有用途,没有值,没有目的
抽象方法没有实体
抽象方法只能在抽象类中,但抽象类中有非抽象方法
==>抽象方法的意义是:就算无法实现出方法的内容,但还是可以定义出一组子型共同的协议
==>这样做的好处是:多态(意味着很多形式)

2、接口
所有接口的方法都是抽象的,任何子类都必须实现这些方法
使用接口可以继承超过一个以上的来源,类可以实现多个接口

3、要点
如果不想让某个类被初始化,就以abstract这个关键词将它标记为抽象的
抽象的类可以带有抽象和非抽象的方法
如果类带有抽象的方法,则以类必定标识为抽象的
抽象的方法没有内容,它的声明是以分号结束
抽象的方法必须在具体的类中运行
java所有类都是Object直接或间接的子类
方法可以声明Object的参数或返回类型
不管实际上所引用的对象是什么类型,只有在引用变量的类型就是带有某方法的类型时才能调用该方法
Object引用变量在没有类型转换的情况下不能赋值给其他的类型,若堆上的对象类型与所要转换的类型不兼容,则此转换会在执行期产生异常
从ArrayList<Object>取出的对象只能被Object引用,不然就要用类型转换来改变
java不允许多重继承,因为那样会有致命方块的问题
接口就好像是100%纯天然抽象类
以interface这个关键词取代class来声明接口
实现接口时要使用implements这个关键词
class可以实现多个接口
实现某接口的类必须实现它所有的方法,因为这些方法都是public与abstract的
要从子类调用父类可以使用super

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值