1)在新建一个基类的时候,不论递归调用几次自身的构造函数,最终你都会去调用父类的构造函数,(不是显式调用的话,系统会调用默认无参数的父类构造函数);
2)JAVA 中规定使用 this 和 super 时必须放在构造函数第一行,只有一个第一行;
package com.csdn.syntagmatic;
/**
* 继承关系super
*
* @author user
*
*/
// 1.super.method调用父类的方法,如果子类重写了父类的方法,会调用子类中的方法
// 2.new的谁,就调用谁的方法
// 3.强制转换没有影响
public class syntagmatic {
public static void main(String[] args) {
System.out.println("*******1*******");
Insect i = new Bee();
i.attack();
System.out.println("*******2*******");
Insect i1 = new Bee();
i1.attack();
System.out.println("*******3*******");
Insect i2 = (Insect) (new Bee());
i2.attack();
}
}
class Insect {
public Insect() {
System.out.println("父类构造方法");
}
public void move() {
System.out.println("Move");
}
public void attack() {
move(); // 假设昆虫在攻击前必须要先移动一次
System.out.println("Attack");
}
}
class Bee extends Insect {
public Bee() {
super();
}
public void move() {
System.out.println("Fly");
}
public void attack() {
move();
super.attack();
}
}
java继承关系super用法
最新推荐文章于 2024-11-15 00:00:00 发布