黑马程序员技术交流社区

标题: 关于继承的问题 [打印本页]

作者: 郭强    时间: 2013-4-13 01:18
标题: 关于继承的问题
本帖最后由 郭强 于 2013-4-13 14:09 编辑

lass A{

int x;

}public class B extends B{

int x;

public static void main(String args[]){

x=2;//调用的B里面的x

super.x=2;//我想调用父类的x,为什么编译器显示错误,该怎么改?先谢谢了!

}

}

作者: 钟林杰    时间: 2013-4-13 02:26
你也太粗心了吧,B继承B!
作者: 陈中岩    时间: 2013-4-13 03:10
本帖最后由 陈中岩 于 2013-4-13 06:52 编辑

  1. class A{

  2. int x;
  3.         void show()
  4.         {
  5.                
  6.         }
  7. }
  8. /*你的问题
  9. *1,应该是B继承A,而不是class B extends B
  10. */
  11. public class B extends A{

  12.         /*问题2,
  13.          *因为x不是静态的,所以不能直接调用
  14.          */
  15.         //int x;
  16.          static int x;
  17.                
  18.         public static void main(String args[]){
  19.         
  20.                 /*问题2,
  21.                  *因为x不是静态的,所以不能直接调用
  22.                  */
  23.         x=2;//调用的B里面的x

  24.         super.x=2;//我想调用父类的x,为什么编译器显示错误,该怎么改?先谢谢了!
  25.         //这块的问题我就不知道了,我只知道子类可以调用方法,我不知道可以这么调用成员变量
  26.         //子类中的int x;已经覆写掉了父类中的 int x;所以想调用父类中的x,可以这么调用
  27.         B b = new B();
  28.         b.x = 2;
  29.         }
  30. }
复制代码

  1. //顺便说一句,个人感觉你问的问题有点模糊,为了便于您对extends更好的理解,我贴出个人的笔记
  2. class Fu
  3. {
  4.         int num = 4;
  5.         void show(){
  6.                 System.out.println(this.num);
  7.         }
  8. }
  9. class Zi extends Fu
  10. {
  11.         int num = 5;//如果子类中没有这句,那么num将去寻找父类中的num
  12.         void show(){
  13.                 System.out.println(this.num);
  14.         }
  15.         
  16. }
  17. class ExtendsDemo4 {
  18.         public static void main(String[] args)
  19.         {
  20.                 Zi z = new Zi();
  21.                 z.show();//这里输出的是5,因为子类覆写了父类中的方法
  22.                 //想调用父类中的方法,创建一个父类对象,然后调用父类中的方法
  23.                 Fu f = new Fu();
  24.                 f.show();
  25.         }
  26. }
复制代码

作者: 本人已死    时间: 2013-4-13 07:17
  1. class A{

  2. int x;

  3. }
  4. public class B extends A{

  5. static int x;

  6. public static void main(String args[]){

  7. x=2;//调用的B里面的x
  8. A a=new B();
  9. a.x=2;//我想调用父类的x,
  10. }

  11. }
复制代码

作者: 黄玉昆    时间: 2013-4-13 07:55
请不要这样一连串的发帖,严重会被当做刷帖处理。
作者: 郭强    时间: 2013-4-13 07:57
嗯,好的,版主,我只是有点心急,技术分一直不够,可能会赶不及报名
作者: 黄玉昆    时间: 2013-4-13 08:06
郭强 发表于 2013-4-13 07:57
嗯,好的,版主,我只是有点心急,技术分一直不够,可能会赶不及报名

即使心急,这样技术也不能提高的,其实技术分不是为了卡大家的,而是为了让大家交流自己的技术,提高自己的技术,只要你这几天认真发帖,认真回帖答题,新人很容易达到10技术分的,并且也会很容易达到25分的。如果你这样发帖,反而会认为你是在刷帖,所以请配合我们版主的工作,谢谢
作者: 陈宇鹏    时间: 2013-4-13 09:29
B继承了B。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2