继承
java只支持单继承,不支持多继承
支持多重继承
继承的成员变量的特性:super访问父类的,this访问自己的
子类方法重写父类方法,和成员变量调用方式一样
子类重写:必须保证子类权限大于等于父类权限
public》 protected》default》private
抽象方法:多个方法的共性向上抽取。没有方法体
抽象方法必须定义在抽象类中
抽象类不能实例化,不能new
抽象类可以不定义抽象方法,只定义普通方法
abstract不可以和private和final和static共享
自动生成get和set方法
子类调用父类的成员变量和成员方法借助super
接口:全是抽象方法,特殊抽象类
接口的固定格式:变量和方法
接口中成员变量的特点
接口中的常量可以直接被类名和接口名调用,不能修改其值
接口中成员方法的特点:
接口中的 public abstract可以省略,但是实现的方法中不可以省略public
接口中可以有多实现,没有继承中的安全隐患
‘’
类可以再继承类的同时实现多个接口
接口之间可以有多继承
接口和抽象类的相同点和区别
多态:基于继承或者接口
调用的是子类重写的show
多态调用的三种形态:继承普通类、继承抽象类、实现于接口
多态中成员变量和方法的特点
成员变量:编译运行全看父类
成员方法:编译看父类,运行看子类
instanceof运算符用于判断引用类型变量
只能用于判断之间有继承关系的类
向上转型Fu f=new Zi()
孔子帮他爹去上课也是教论文
向上转型的好处:可以调用两者共有的方法
坏处:不能再调用子类的特有方法,这里就必须使用向下转型
为了调用子类中特有的函数,必须向下强制转型
向下转型先借助instanceof判断
借助USB接口和多态实现鼠标键盘应用代码
构造方法:在创建对象的时候赋值
构造方法无返回值,void也不用写,在new的时候只运行一次
如果没有会自动创建一个空参数的构造函数
构造函数的作用:在创建对象的时候为对象赋值
构造方法的重载
this关键字在构造方法之间的互相调用
重点:this必须为构造函数的第一行
没重名的this可以省略
借助super执行父类的构造函数,子类构造函数中默认有一个super()
这里是为了查看父类是怎么初始化的
父类构造方法是有参数的,子类构造方法是无参数的,就会报错,子类中必须用带参数的super(声明)
且子类中有几个构造方法,就声明几个super(参数)
子类构造函数this和super必须都在第一行,,当啥也不写时,默认隐式有一个super
把子类的初始化过程传给父类去完成,自己就不用定义name和age这些私有变量了
根据下面图编写员工类代码,把变量和方法定义都抽象到了父类