抽象类里可以定义抽象类的变量吗?

zpsigma 2008-08-26 08:43:56
小弟在写程序的时候搞出了这样的代码:

abstract class A{
//something ......
}

class P extends A{

}

abstract class B{
//something ......
/**
Field
*/
private A a;
......
}

class R extends B{

private P p;
}


也就是说,我在一个抽象类 B 的域中的一个变量是抽象类 A。但在另一个继承了抽象类 B 的实例类 R 中这个变量不再是抽象类 A ,而是继承了 A 的实例类 P ,然后,我就混乱了……
...全文
1331 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
llxx0373 2008-08-26
  • 打赏
  • 举报
回复
可以吗?不确定啊
ZangXT 2008-08-26
  • 打赏
  • 举报
回复
没有那么麻烦.
你这里只是定义了一个抽象类的引用,并没用创建对象.
父类的引用可以指向子类的对象.
fanchangyong 2008-08-26
  • 打赏
  • 举报
回复
可否详细的说一下抽象工厂...
Ji秋风 2008-08-26
  • 打赏
  • 举报
回复
可以的啊。
虽然R继承了B
但是
private A a;

private P p;
是定义了不同的变量。

你在使用过程中 可能会用到
a = new P();
p = new P();

a和p是不同对象,a只能访问抽象类的方法,但是p还可以访问类p特定方法。
zpsigma 2008-08-26
  • 打赏
  • 举报
回复
抽象工厂模式?好像超出我的能力了,我试试看。
feng_cs 2008-08-26
  • 打赏
  • 举报
回复
可以。
jimmy_gray 2008-08-26
  • 打赏
  • 举报
回复
abstract factory

62,635

社区成员

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

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