2020/06/03 接口与继承
多态
必要条件:继承、方法重写、父类引用指向子类对象
根据传入的参数,系统判断其是父类对象还是哪个子类对象,再根据判断调用对应方法
隐藏/重写
类方法: 又叫做静态方法
对象方法: 又叫实例方法,非静态方法
访问一个对象方法,必须建立在有一个对象的前提的基础上
访问类方法,不需要对象的存在,直接就访问
重写是对于对象方法
隐藏是对于类方法,子类覆盖父类的类方法
super关键字
继承树追溯构造方法第一行会默认调用父类 无参 构造方法
Object类
所有类的父类,声明一个类时,默认继承Object
object类提供toString方法
返回当前对象的字符串表达
finalize()
当一个对象没有任何引用指向的时候,就会被垃圾回收,finalize() 就会被调用
equals()
用于判断两个对象的内容是否相同
==
判断两个对象是否相同/两个引用,是否指向了同一个对象
hashCode()
返回一个对象的哈希值
final修饰符
修饰类:被final修饰的类不可被继承
修饰变量:该变量只有一次赋值机会
修饰引用:该引用只有一次指向对象的机会
抽象类
在类中声明方法,且没有实现体,这样的方法叫抽象方法,使用修饰符"abstract"
一旦一个类被声明为抽象类,就不能够被直接实例化
意义:父类没有实现,子类必须实现,给子类提供规范
抽象类和接口的区别
区别1:
子类只能继承一个抽象类,不能继承多个
子类可以实现多个接口
区别2:
抽象类可以定义
public,protected,package,private
静态和非静态属性
final和非final属性
但是接口中声明的属性,只能是
public
静态
final的
即便没有显式的声明
接口
定义说明
可继承多个接口
只有常量,默认public static final修饰
方法 默认public abstract修饰
默认方法
JDK8新特性,可在接口提供具体方法
default public void 方法名()