請教:java繼承的問題,是不是該這樣理解?

lovingoliver 2004-02-07 05:32:34
請教:是不是該這樣理解?
1)//child.java
class parent
{
parent()
{
System.out.println("parent(): "+this);
}
public String toString()
{
return "Object of parent";
}
public void println()
{
System.out.println("parent.println()");
}
}
public class child extends parent
{
child()
{
System.out.println("child(): "+this);
}
public String toString()
{
return "Object of child";
}
public void print()
{
System.out.println("child.print()");
}
public static void main(String[] args)
{
try {
parent p=new child();
p.println();
((child)p).print();
//p.print();//[A]:會產生編譯錯誤﹔
}
catch (Exception ex) {
System.out.println(ex);
}
}
}

結果:
parent(): Object of child
child(): Object of child
parent.println()
child.print()

2)問題:
p雖然定義為parent的對象,
但在運行期間它是child的對象﹔
[A]的編譯錯誤是因為編譯器認為p是parent的對象,
而類parent沒有print()方法,
所以編譯不過。
是不是這樣,還請大家指點,謝謝!
...全文
20 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧