工作上忙了几天,复习了一下前面学的,昨天又开始学习继承(inheritence)了
继承:表示父子关系,子继承了父
java是单继承的:也就意味着一个类只能从另一个类继承,被 继承的类叫做父类(也叫基类base class)继承的类叫做子类。
关键字:extends
public static child extends parent {
}
calss parent {
}
这就是简单的继承,子类继承了父类,
public Child() {//不带参数的构造方法
System.out.println("child");
}
public static void main(String[] args) {
Child child = new Child();//生成一个对象
}
}
class Parent {
public Parent() {
System.out.println("parent");
}
}
先执行父类的不带参数的构造方法,再执行子类。输出结果为parent child
再看下面这个,
public class Child extends Parent {
public Child() {//不带参数的构造方法
System.out.println("child");
}
public static void main(String[] args) {
Child child = new Child();//生成一个对象
}
}
class Parent {
public Parent() {
System.out.println("不带参数的构造方法");
}
public Parent(int i) {
System.out.println("带参数的构造方法");
}
}
输出结果为:不带参数的构造方法 child
public class Child extends Parent {
public Child() {//不带参数的构造方法
super(12);
System.out.println("child");
}
public static void main(String[] args) {
Child child = new Child();//生成一个对象
}
}
class Parent {
public Parent() {
System.out.println("不带参数的构造方法");
}
public Parent(int i) {
System.out.println("带参数的构造方法");
}
}
super();表示对父类对象的引用,也必须是构造方法中的第一个语句
如果子类使用super();显式调用父类的构造方法,那么在执行的时候,就会寻找与super();所对应的父类构造方法,而不会再去寻找父类的不带参数的构造方法