(*)继承:类名字后+extends关键字,一个父类<----对应---->多个子类,子类继承父类所有可访问的成员(变量,方法)
(*)重写(覆盖):子类可以重写父类函数,重写的函数的访问修饰符必须高于父类原函数的访问修饰符,子类重写父类函数的方法是函数的定义要一模一样
(*)父类引用不能调用子类方法:如下图
(*)继承中的变量:super关键字,访问父类成员
(*)继承中的函数:
(*)继承中的构造函数:
//子类所有的构造函数都默认调用父类的空参构造函数,因为子类所有构造函数都有一句隐式super();
//父类中没有空参构造函数,子类必须手动通过super关键字调用父类构造函数
//在一个构造函数中this()和super()关键字不能同时出现
//子类构造函数必须调用父类构造函数
//构造函数没有重写,因为函数名不同
(*)final关键字:最终的意思,是一个修饰符。
1,被final修饰的类不可以被继承,是为了避免子类复写已有功能。
2,被final修饰的方法不可以被复写。
3,被final修饰的变量就是常量,只能被赋值一次。
//常量的书写规则,所有字母大写,单词间用_连接
(*)关键字 abstract(抽象)----抽象类,抽象函数
1,被abstract关键字修饰的类和函数,就是抽象类,抽象函数
2,抽象函数必须在抽象类中,抽象类中不一定要有抽象函数
3,抽象类不可以new对象,但是可以作为变量的数据类型赋予子类实例
4,子类必须重写父类的所有抽象函数
5,抽象函数没有方法体
(*)模版方法模式:示例代码,如下
(*)interface接口:
//所有方法都是abstract的类就是接口
//接口成员定义方法固定
类:继承一个类,实现多个接口
接口:继承多个接口