1.继承:子类构造器 特点:子类的所有构造器都会使用super关键字调用父类构造
应用:使用super()给父类中的成员变量赋值
注意: this(),super()都必须放在构造器的第一行
this(),super()在一个构造器中不能同时存在
2.多态:概述:对象的多态和行为的多态:一个对象可以拥有多种形态
多个对象针对同一种行为可以表现出不同的结果
前提:1.必须有继承关系或实现关系
2.必须有父类类型的变量引用了子类类型的对象
3.必须有方法重写,如果不重写语法不报错,但是没有意义
多态的语法规则:调用方法的时候,编译检查父类,运行检查子类
好处:1.在多态形式下,右边对象是解耦合的,更便于扩展和维护
2.定义方法时,形参设计成父类类型的,可以接受一切子类对象,扩展性更强,更便利
弊端:不能使用子类特有的方法
多态转型: 1.自动类型转换(小转大)
2.强制类型转换 (一旦将多态形式的对象,转成了子类的原始类型,就可以使用子类特有的方法了)
3.可以配合if语句和instaceof关键字对多态形式的对象判断原始类型
3.final 概述:是Java的修饰符,表示最终的意思
语法:1.修饰类-该类不能被继承
2.修饰方法-该方法不能被重写
3.修饰变量 :基本数据类型-数据只能赋值一次
引用数据类型-地址值只能赋值一次,但是对象中的内容可以更改
应用场景: 1.如果在类或接口中定义一些固定不变的数据,让别人使用的时候,可以使用final,变成常量
2.如果作为父类,我们的方法不希望子类重写,可以使用final修饰方法
3.如果类中所有的方法都不希望别人重写,可以将类final;
4.抽象类 概述: 使用abstract关键字修饰的类就是抽象类
语法: public abstract class 类名{类的成员} 1.成员变量
2.成员方法
3.构造器
4.抽象方法(使用abstract修饰且不带方法就是抽象方法)
5.代码块和静态代码块
特点:1.抽象类不能直接创建对象 -因为他是抽象的描述某种事物的,且描述事物的 时候,有些功能只是知道有,但是具体如何完成,不确定,需要由具体的子类完成
2.子类继承抽象类的时候必须重写抽象类中的所有的抽象方法,否则子类也必须是抽象类
3.抽象类中可以不写抽象方法,但是抽象方法的类一定是抽象类
应用场景:
仅在一些设计模式中使用- 模块设计模式: 概述: 对一些功能的流 程进行限制,将 不同的实现抽象 到一个抽象方法 中,由子类完成
语法:1.定义一个抽象类
2.写两个方法:2.1 final的模板办法,负责规定流程/模板
2.2 抽象方法,这个方法强制子类重写模板中规定的内容
3.让子类继承模板类,重写抽象方法,完成具体功能
4.在测试类中,创建子类对象,调用模板方法
5.接口
概述: 使用interface关键字修饰的一种引用数据类型
语法:public interface 接口名{ 接口的成员}
类实现接口 -----public class 类名 implements 接口1,接口2....{}
接口的成员
<=JDK7 ---------常量一般使用public static final 修饰
---------抽象方法 意义就是强制实现类必须按这个方法声明完成工作
==8 -----------新增了默认方法 使用default修饰的方法,带方法体,可以用实现类对象调用 注意:当多个接口中 有重名的默认方法的时候,实现类必须重写!
---------新增了静态方法 通过接口名直接调用,提高了代码的复用性
>=9 ----------新增了私有方法 仅仅是为了提升静态方法和默认方法的代码的复用性
接口的意义 规定了做事情的规范,方便合作及多态的应用