1.继承,extends
- 方法的重写:
- 如果子类对继承父类的方法不满意,是可以重写父类的方法的,当调用方法时优先调用子类的方法
- 语法规则
a.返回值类型
b.方法名
c.参数类型及个数 - 都要与父类继承的方法相同,才叫方法的重写
2.继承中的初始化顺序:
1》先初始化父类,再初始化子类
2》先执行初始化对象中的属性,再执行构造方法中的初始化。
父类对象->属性初始化->构造方法->子类对象->属性初始化->构造方法
3.final关键字
可以修饰类,方法,属性,变量
final修饰类,则该类不允许被继承;
final修饰方法,则该方法不允许被覆盖(重写);
final修饰属性,则该类的属性不会进行隐式的初始化(类的初始化必须有值),或在构造方法中赋值(但只能选其一)。(如果在声明属性的时候没有初始化,那在构造方法中一定要初始化,这两种只能初始化一次);
final修饰变量,则该变量就变成常量。
4.super关键字
在对象的内部使用,可以代表父类。
1》访问父类的属性:super.age;
2》访问父类的方法:super.eat();
应用:子类的构造的过程当中必须调用其父类的构造方法(隐式的方法super());
如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法;
如果子类的构造方法中显示的调用父类的构造方法,必须在子类的构造方法的第一行。
如果子类的构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
5.Object类
是所有类的父类
几个重要的方法:
1》toString()方法--返回对象的哈希code码(对象地址字符串)
System.out.println(dog);//com.imooc.Dog@1b7adb4a
可以通过重写toString()方法表示出对象的属性(选择菜单栏的source中有重写toString()方法)
System.out.println(dog);//Dog [age=20]
2》equals()方法
比较的是对象的引用是否指向同一块内存地址
但是,一般情况下比较两个对象时都是比较他们的值是否一致,所以要进行重写。