我误解了继承的基本内容。 我有一个父类:
A
和一个儿童班:
public class Parent {
String s = "Parent";
Parent () {}
String getS() {
return this.s;
}
}
主要是:
public class Child extends Parent {
String s = "Child";
Child() { }
}
我希望Parent parent = new Parent();
Child child = new Child();
Log.e(TAG, "parent:" + parent.getS());
Log.e(TAG, "child:" + child.getS());
返回“Parent”,parent.getS()
返回“Child”,但两者都返回“Parent”。当以这种方式调用时,方法前缀是否不能确定方法的child.getS()
?
谢谢 史蒂夫S。
答案 0 :(得分:1)
getS()
方法在Child类中继承
因此它可用于Child对象。答案 1 :(得分:0)
当您在main方法中调用child.getS()时,您应该在Child类中创建一个getter方法,即getS()来检索“Child”。这样,您可以覆盖从Parent类继承的getS()方法。
答案 2 :(得分:0)
在子类的父部分中设置s
- 成员的方式是提供protected
构造函数(当然,它也可以是{{1} }}):
public
将字符串设置为给定值。然后,您将使用
将此构造函数称为子构造函数中的第一个调用 protected Parent(String s) { this.s = s; }