第一题
父类.java
public class Hero {
public String name = "来自父类的字段";
public void effect(){
System.out.println("来自父类的方法");
}
}
子类.java
public class ADHero extends Hero {
public String name = "来自子类的字段";
public void effect(){
System.out.println("来自子类的方法");
}
}
test.java
输出结果:
第二题
子类 , 父类 和上面保持不变
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
输出结果
第三题
父类.java
public class Hero {
public String name = "来自父类的字段";
public void effect(){
System.out.println("来自父类的方法");
}
}
子类.java
public class ADHero extends Hero {
//public String name = "来自子类的字段"; //注意 注释掉了
public void effect(){
System.out.println("来自子类的方法");
}
}
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
输出结果
第4题
test.java
public static void main(String[] args) {
Hero hero = new Hero();
ADHero adHero = new ADHero();
System.out.println("父类地址是:"+hero);
System.out.println("子类地址是:"+adHero);
adHero.name="来自子类的字段"; //注意 增加了这句
System.out.println(hero.name);
hero=adHero ;
System.out.println("赋值后父类地址是:"+hero);
System.out.println(hero.name);
}
其实--- adHero.name="来自子类的字段"; // 假如子类没有name属性的话,这句话的name 拿的是父类的name 。假如子类name属性的话,那么这句话的name 拿的是子类的name
不行的话,请看第5题
输出结果