有那么个父类和子类:
Base.java:
--------------
- Java code
public class Base { public String str = "base"; public void print() { System.out.println(str); }}
Sub.java:
---------------
- Java code
public class Sub extends Base { public String str = "sub"; public void myPrint() { super.print(); }}
Test.java:
---------------
public class Test {
public static void main(String[] args) {
Sub sub = new Sub();
sub.myPrint(); //这里输出"base",我是希望输出"sub"的 .......
子类不是应该覆盖父类的同名属性吗?
------解决方案--------------------------------------------------------
属性,没有多态一说。只有方法才有override,才有覆盖,才有重写,才有多态
------解决方案--------------------------------------------------------
属性的引用不存在多态
------解决方案--------------------------------------------------------
- Java code
public class Base { public String str = "base"; public void print() { System.out.println(getStr()); } public String getStr() { return str; }}public class Sub extends Base { public String str = "sub"; public void myPrint() { super.print(); } public String getStr() { return str; }}