java - day007 - 继承(2), 多态,面向对象,抽象类

时间:2023-03-08 17:30:43

继承

新建子类对象是,先新建父类对象,并执行父类的构造方法,

默认执行父类的无参构造放方法

可以 手动调用父类的有参构造 super(参数 )

super

super.xxx()

调用父类成员

一般重写方法, 调用父类同一个方法代码

super();

调用父类构造方法

默认调用父类无参构造super()

可以手动调用父类有参构造 super(参数)

多态

作用: 一致的类型

所有子类型对象,都可以被当做一致的父类对象来处理

类型转换

向上转父类, 子类实例转型成父类型,

只能调用父类通用成员

向下转子类, 已经转为父类型的子类实例,再转回成子类型,

向下转型必须强转,

某种类型,要特殊处理,可以转回成子类型处理

向下转型后,才能调动子类特有的成员

instanceof

  运行期的类型识别 

  对真实类型及其父类型判断  都是成立的

Shape s = new line();

s instanceof Line 返回 true

s instanceof Shape 返回 true

面向对象: 特性

  封装: 类,对象,引用,构造方法,this,重载

  继承: 作用--代码重用

           单继承,子类对象, 父类构造方法,重写

  多态: 作用--

          向上转型,向下转型

          instanceof 运行期的类型识别

抽象类 : 为子类提供通用的方法定义

   abstract 关键字

  半成品类 ,没有完成的类

  抽象类不能创建实例, 

  包含抽象方法的类, 必须是抽象类

  抽象方法去掉方法大括号,分号结束

  抽象方法必须在具体子类中完后实现

  继承抽象类, 必须完成抽象方法