什么是“类数据成员”,什么是“对象数据成员”,两者有什么区别?

bluejohnny 2004-06-23 10:27:04

class Book {
int page=500;
String author="Sam";
}

class ITBook extends Book {
int page=600;
String author="Gates";
}

class JavaBook extends ITBook {
// int page=900;
String author="Eckel";
}

public class TestInheritence {
public static void main(String[] args) {
Book book=new Book();
ITBook itbook=new ITBook();
JavaBook javabook=new JavaBook();
System.out.println("Book.page:"+book.page);
System.out.println("ITBook.page:"+itbook.page);
System.out.println("JavaBook.page:"+javabook.page);
System.out.println("JavaBook.author:"+javabook.author);
}
}

请看上面简单程序,如果JavaBook不定义page数据成员,由于JavaBook继承于ITBook,那么照样可以调用JavaBook.page,但同样道路,上面定义了author数据成员,但既然JavaBook已经有了继承于ITBook的数据成员author,这里再次定义,为什么编译的时候不会发生冲突呢?

另外,以前曾经听说过数据成员有所谓“类数据成员”,有所谓“对象数据成员”,请问二者有何区别,请举一例。
...全文
633 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
steel007 2004-08-22
  • 打赏
  • 举报
回复
同楼上的
类数据成员是指类中static定义的数据成员,他们属于整个类而非单个对象
对象数据成员是指类中的non-static定义的数据成员,每个对象都有一份单独的non-static 数据成员
MaoZhua 2004-08-22
  • 打赏
  • 举报
回复
呵呵,楼主别自个顶自个的帖子呀!
static定义的是类数据成员。
non-static定义的是对象数据成员。

还有你的第一个问题:凡是再子类中定义父类有过的变量,都会将父类的变量覆盖!
bluejohnny 2004-08-22
  • 打赏
  • 举报
回复
up
lodestar51 2004-06-24
  • 打赏
  • 举报
回复
没有在意....不明白
lqtflwg718 2004-06-24
  • 打赏
  • 举报
回复
类数据成员是用static定义的。
对象数据成员不是。
a77777 2004-06-23
  • 打赏
  • 举报
回复
多看看书吧,最基本的
wulemale 2004-06-23
  • 打赏
  • 举报
回复
类的数据成员包含简单数据成员和对象数据成员,如:
int i;i就是一简单数据类型的成员
Integer i;i就是对象成员,此时可用: 对象名.属性或方法来对象的属性或方法
因Interger 是final类也可直接用:类名.属性或方法
bluejohnny 2004-06-23
  • 打赏
  • 举报
回复
应该是的。
shuneng 2004-06-23
  • 打赏
  • 举报
回复
如果子类中有定义相应的成员,包括数据和方法,则使用子类中的。
没有听过楼主提的“类数据成员”,“对象数据成员”
是不是说static 和 non-static成员
bluejohnny 2004-06-23
  • 打赏
  • 举报
回复
up

62,616

社区成员

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

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