继承多态
继承 多态
1:继承: 关键字extends 先写父类 再编写子类,继承父类。
子类访问父类成员: 使用super关键字
2:继承后的初始化顺序: 父类属性 父类构造方法 子类属性 子类构造方法
3:有些父类成员不能继承 ::
(1).不能访问父类的private成员
(2).子类与父类不在同包,使用默认权限的成员
(3).构造方法(只能调用,不能继承)
4:访问修饰符 本类 同包 子类 其他
Private 1 0 0 0
默认(friendly) 1 1 0 0
Protected 1 1 1 0
Public 1 1 1 1
5:方法重写vs方法重载
位置 方法名 参数表 返回值 访问修饰符
方法重写 子类 相同 相同 相同 不能比父类更严格
方法重载 同类 相同 不同 无关 无关
6:Java中使用抽象类,限制实例化 关键字:abstract
Abstract 也可用于方法----抽象方法
抽象方法没有方法体
抽象方法必须在抽象类里
抽象方法必须在子类中被实现,除非子类是抽象类
7:final关键字 类(不能被继承) 方法(不能被重新) 属性(不能被修改)
8:Static修饰 属性 方法 代码块
Static修饰的属性和方法称为类属性(类变量) 类方法
不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量) 实例方法
Static运行时最先被分配内存空间,最后被注销
8:成员变量/全局变量:实例变量 类变量
局部变量
9:所有类的超类(Object)
10:多态:重载 重写
重写:
10.1:使用继承 2:子类重写父类的方法 3:父类引用子类
10.1.1:向上转型:会丢失自己特有的属性和方法;
10.1.2:向下转型:恢复自己特有的属性和方法
向下转型:
1.强制类型转换,父类转换子类
2.应用类型的还原
3.instanceof (1.判断一个对象是否属于一个类或者实现了一个接口 2.强制类型转换之前使用instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码的健壮性)