子类变量覆盖父类变量,子类调用父类方法的问题
有那么个父类和子类:
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; }}