继承
新建子类对象是,先新建父类对象,并执行父类的构造方法,
默认执行父类的无参构造放方法
可以 手动调用父类的有参构造 super(参数 )
super
super.xxx()
调用父类成员
一般重写方法, 调用父类同一个方法代码
super();
调用父类构造方法
默认调用父类无参构造super()
可以手动调用父类有参构造 super(参数)
多态
作用: 一致的类型
所有子类型对象,都可以被当做一致的父类对象来处理
类型转换
向上转父类, 子类实例转型成父类型,
只能调用父类通用成员
向下转子类, 已经转为父类型的子类实例,再转回成子类型,
向下转型必须强转,
某种类型,要特殊处理,可以转回成子类型处理
向下转型后,才能调动子类特有的成员
instanceof
运行期的类型识别
对真实类型及其父类型判断 都是成立的
Shape s = new line();
s instanceof Line 返回 true
s instanceof Shape 返回 true
面向对象: 特性
封装: 类,对象,引用,构造方法,this,重载
继承: 作用--代码重用
单继承,子类对象, 父类构造方法,重写
多态: 作用--
向上转型,向下转型
instanceof 运行期的类型识别
抽象类 : 为子类提供通用的方法定义
abstract 关键字
半成品类 ,没有完成的类
抽象类不能创建实例,
包含抽象方法的类, 必须是抽象类
抽象方法去掉方法大括号,分号结束
抽象方法必须在具体子类中完后实现
继承抽象类, 必须完成抽象方法