Java父、子类成员变量和方法的调用关系

成员变量的调用和创建类时new后面的类型无关,和当前实力所属的类型有关;

调用方法时,只与new后面的类型有关。

代码:

<span style="font-size:14px;">public class Mastiff extends Dog {
	public String type="子类成员变量赋值";
	
	@Override
	public void fun1() {
		System.out.println("Mastiff fun1");
	}

	@Override
	public void fun2() {
		System.out.println("Mastiff fun2");
	}
	
	public static void  main(String[] args){
    	Mastiff mastiff = new Mastiff();
    	System.out.println(mastiff.type);
    	mastiff.fun1();
    	mastiff.fun2();
    	
    	Dog dog1 = new Mastiff();
    	System.out.println(dog1.type);
    	dog1.fun1();
    	dog1.fun2();
    	
    	Dog dog2 = (Dog)mastiff;
    	System.out.println(dog2.type);
    	dog2.fun1();
    	dog2.fun2();
    }
}  </span>
<span style="font-size:14px;">public abstract class Dog {
	public String type="父类成员变量赋值";
	
	public abstract void fun1();
	
	public void fun2() {
		System.out.println("Dog fun2");
	}
}</span>

执行结果:

子类成员变量赋值
Mastiff fun1
Mastiff fun2
父类成员变量赋值
Mastiff fun1
Mastiff fun2
父类成员变量赋值
Mastiff fun1
Mastiff fun2


发布了26 篇原创文章 · 获赞 3 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章