extends
来表示继承关系
class 父类 {
}
class 子类 extends 父类 {
}
this super
子类重写父类方法,使用this
调用子类的方法,使用super
调用父类的方法
class Person {
void eat() {
System.out.println("animal : eat");
}
}
class Dog extends Animal {
void eat() {
System.out.println("dog : eat");
}
void eatTest() {
this.eat(); // this 调用自己的方法
super.eat(); // super 调用父类方法
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog d = new Dog();
d.eatTest();
}
}
构造器
1.子类不继承父类的构造器
2.如果父类的构造器带有参数,则子类必须通过super
显式的调用父类的构造器
3.如果父类的构造器没有参数,则子类不需要显式调用父类构造器,系统会自动调用父类的无参构造器
class SuperClass {
private int n;
SuperClass(){
System.out.println("父无参构造函数");
}
SuperClass(int n) {
System.out.println("父有参构造器函数:int-"+n);
this.n = n;
}
}
class SubClass extends SuperClass{
private int n;
SubClass(){ // 自动调用父类的无参数构造器
System.out.println("子无参构造函数");
}
public SubClass(int n){
super(300); // 调用父类中带有参数的构造器
System.out.println("子有参构造函数:int-"+n);
this.n = n;
}
}