一、继承
关键字:extends
1、定义:
子类继承父类,就会继承父类所有非私有属性。
所以在设计父类与子类时,
将子类共有的特点(属性)和行为(方法)抽离出来定义为父类。
将子类特有的特点(属性)和行为(方法)定义在子类中,其他的则使用父类中的。
2、方法的重写:
(1)重载(overload):
条件: 方法名相同,参数列表不相同,与返回值类型与访问修饰符无关。
(2)重写(override):
如果子类中有和父类相同的方法,那么就会调用子类的方法,父类的方法就会被覆盖。
条件: 方法名、参数列表以及返回值类型相同,访问修饰符不能比父类的更严格。
3、继承的初始化顺序
1、先初始化父类,再初始化子类(先加载父类,方便子类去使用)
初始化,也就是执行构造方法。
2、先执行初始化对象中属性,再执行构造方法中的初始化。
综上所述,当我们创建一个子类对象时,
在代码中的体现(引入super关键字)
package Test;
public class Person {
String name;
int age;
public Person() {
System.out.println("这是父类无参构造");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
class Student extends Person{
String id;
public Student() {
super();
System.out.println("这是子类无参构造");
}
public Student(String id) {
super();
System.out.println("这是子类有参构造");
}
//将所有属性初始化的有参构造
public Student(String name,int age,String id) {