day13
接口
-
类型转换
装箱:向上类型转换,自动完成,把子类转换为父类的过程
问题:只能访问父类里的成方圆,不能访问子类成员
Pet[] pets=new Pen[5]
体现了LSP原则:里氏替换原则,方便编码
拆箱:向下类型转换,强制完成,把父类类型转换为子类类型的过程
遍历数组,需要强转
对象 instanceof 类型 判断对象是否是某个类型 是true 不是false
强制转换后,就可以访问子类队友成员。
-
abstract 抽象的
如果方法无法确定方法体。那么久不屑方法体,{}也不写,这样的方法成为抽象方法
抽象方法坐在的类一定是抽象类,
抽象类不能被实例化,有构造方法,给属性赋值
作用: 约束子类行为的作用,子类必须实现抽象类方法.
抽象子类可以不实现 -
static静态的
属性 方法 内部类 代码块
在一个类中,static修饰的静态尘缘,存在于方法区中(属性在运行后就夹在到了方法去,方法是在调用时加载方法去,都只加载一次,程序关闭后static小时),实例成员,在new时被加载到堆区中
静态成员对所有对象共享
访问讲台成员的方法:类名.静态成员名
静态成员名 不推荐
对象名.景天成员名 不推荐
静态方法不能直接访问实例成员,必须先new对象,然后通过对象访问
可以直接访问你静态成员
实例方法可以直接访问静态成员
可以直接访问实例成员
-
final 最终的
常量:复制后,就不允许更改
属性常量,在生命的同时必须复制
局部常量:先声明,在复制
最终方法:此方法不能被重写
接口的概念
继承是is-a的关系
使用接口完善子类的功能,
接口是has-a的关系 有一个能流利
子类 extends 父类 implements 接口1,2
接口内成员
属性 public static final
方法 public abstract
设计程序的时候,把继承的内容放置在父类中,还具备某个能力,但这个能力不属于父类,那么就放在接口中。
java继承的特点:类 单继承,接口多实现。
【说明】:类实现接口后,要实现接口中的所有方法
设计接口有一个原则:接口分离原则----接口中的方法不要太多,是同一方向的方法
【分析】:类和接口之间是可以实现关系implements,类可以实现多个接口
接口之间可以多继承
【强调】:接口不能被new,接口无构造方法
【面试题】:接口和抽象类的区别?
【答】:new都不饿能被实例化,但是抽象类有构造方法,接口没有
从继承的角度,类是单继承的,接口是多继承,多实现的。
从成员的角度,抽象类中可以有普通方法,属性,代码块,接口中只能有public static final的属性及public abstract的方法
【面试题】:可以说接口是特殊的抽象类,在设计程序时,如何选择设计抽象类还是接口呢?
【答】:从is-a has-a的角度来设计
接口可以用作引用类型,做类型后,限定只能访问接口中的成员