A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭强 中级黑马   /  2013-4-13 01:18  /  1482 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭强 于 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,为什么编译器显示错误,该怎么改?先谢谢了!

}

}

7 个回复

倒序浏览
钟林杰 来自手机 中级黑马 2013-4-13 02:26:42
沙发
你也太粗心了吧,B继承B!来自: Android客户端
回复 使用道具 举报
本帖最后由 陈中岩 于 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. }
复制代码
回复 使用道具 举报
  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 08:06:03
7#
郭强 发表于 2013-4-13 07:57
嗯,好的,版主,我只是有点心急,技术分一直不够,可能会赶不及报名

即使心急,这样技术也不能提高的,其实技术分不是为了卡大家的,而是为了让大家交流自己的技术,提高自己的技术,只要你这几天认真发帖,认真回帖答题,新人很容易达到10技术分的,并且也会很容易达到25分的。如果你这样发帖,反而会认为你是在刷帖,所以请配合我们版主的工作,谢谢
回复 使用道具 举报
B继承了B。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马