子类继承父类重写父类的属性值问题

案例一

试想一下代码的执行结果

package com.syc.test;

public class A {
	public static void main(String[] args) {
		FatherClass father = new FatherClass();
		System.out.println(father.info);

		SonClass son = new SonClass();
		System.out.println(son.info);

		FatherClass son2 = new SonClass();
		System.out.println(son2.info);

	}
}

class FatherClass {
	String info = "FatherClass";
}

class SonClass extends FatherClass {
	String info = "SonClass";
}

程序的执行结果是:

你想对了吗?

案例二

我们稍微做一个改变,继续试想一下代码的执行结果

package com.syc.test;

public class A {
	public static void main(String[] args) {
		FatherClass father = new FatherClass();
		System.out.println(father.info);

		SonClass son = new SonClass();
		System.out.println(son.info);

		FatherClass son2 = new SonClass();
		System.out.println(son2.info);

	}
}

class FatherClass {
	String info = "FatherClass";
}

class SonClass extends FatherClass {
	SonClass(){
		String info = "SonClass";
	}
}

执行结果是:

案例三

继续做猜想

package com.syc.test;

public class A {
	public static void main(String[] args) {
		FatherClass father = new FatherClass();
		System.out.println(father.info);

		SonClass son = new SonClass();
		System.out.println(son.info);

		FatherClass son2 = new SonClass();
		System.out.println(son2.info);

	}
}

class FatherClass {
	String info = "FatherClass";
}

class SonClass extends FatherClass {
	SonClass(){
		super.info = "SonClass";
	}
}

执行结果:

案例四

继续吧

package com.syc.test;

public class A {
	public static void main(String[] args) {
		FatherClass father = new FatherClass();
		System.out.println(father.info);

		SonClass son = new SonClass();
		System.out.println(son.info);

		FatherClass son2 = new SonClass();
		System.out.println(son2.info);

	}
}

class FatherClass {
	String info = "FatherClass";
}

class SonClass extends FatherClass {
	String info;
	SonClass(){
		info = "SonClass";
	}
}

执行结果是:

案例五

package com.syc.test;

public class A {
	public static void main(String[] args) {
		FatherClass father = new FatherClass();
		System.out.println(father.info);

		SonClass son = new SonClass();
		System.out.println(son.info);

		FatherClass son2 = new SonClass();
		System.out.println(son2.info);

	}
}

class FatherClass {
	String info = "FatherClass";
}

class SonClass extends FatherClass {
	String info;
	SonClass(){
		super.info = "SonClass";
	}
}

怎么样,你都答对了吗?

想要答案,看这里:

https://blog.csdn.net/shao_yc/article/details/105391102

原创文章 97 获赞 43 访问量 1万+

猜你喜欢

转载自blog.csdn.net/shao_yc/article/details/105352523