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用法
最新推荐文章于 2023-05-15 22:50:03 发布