作者changyuheng (张昱珩)
看板java
标题Re: [问题] 继承与物件使用的问题?
时间Sun May 19 15:37:59 2013
B 才有的东西,A 不会知道
private A myObject = new B();
所产生的 myObject 是被转型为 A 的 B,
换句话说是一个被当成 A 来用的 B,也就是一个 A。
想要用 B 才有的功能,就不能把他当成 A,
一定要转成 B 或是包含 B 的物件。
例如:
if (myObject instanceof B) {
// ((B) myObject).myString
}
※ 引述《henry4343 (henry)》之铭言:
: 各位好
: 请问各位一个问题
: 我宣告了一个class A
: public class A {
: }
: 然後又宣一个class B 继承 A
: public class B extends A {
: }
: 因为还有其他class也继承A,所以我在其他class宣告的时候这样写
: public class Main {
: //用A来宣告物件,当new时才决定物件型态
: private A myObject;
: public function() {
: myObject = new B();
: 这个时候问题来了......
: 假如我在Class B中写了一个public String myString = "123";
: 可是myObject.myString会错误,好像找不到myString的样子
: 我一定要把myString写在Class A里面
: 才有办法使用myObject.myString
: 因为我还有其他Class继承Class A,但每个继承的Class又希望有自己的物件
: 然後我想要宣告一个全域变数,在我想要的地方在把它宣告成我要的物件
: 我有办法在各自继承Class A的Class内写自己的物件并且使用这种宣告方式来
: 存取各自的物件吗?
: 或者有其他的方法可以达成我想要的需求?感谢各位大大解答了...
: }
: }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.9.134.102