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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史小兵 中级黑马   /  2012-10-12 20:36  /  1657 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类如何访问父类的成员变量?
public abstract class Animal {
        public String name="dong wu";
        public abstract  void enjoy();
       

}
class Cat extends Animal{
//        super.name="haha";为什么在此处没办法使用父类变量
       
        @Override
        public void enjoy() {
                System.out.println(super.name);
               
               
        }
       
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
本帖最后由 廖智 于 2012-10-12 20:54 编辑




子类想要访问父类中的成员,用super来指向。
回复 使用道具 举报
  1. package com.itcast.practise;

  2. public class Demo2 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.         Sun sun = new Sun();
  9.         sun.show();
  10.       
  11.         }

  12. }

  13. abstract class Father{
  14.         abstract public void show();
  15.         public String name = "456";
  16.        
  17.                
  18.        
  19.        
  20. }
  21. class Sun extends Father{
  22.         //super.name = "haha";
  23.         String str = super.name;  //这里不能用super.name = "haha" 应该是为了保护父类中的变量
  24.     @Override
  25.         public void show(){
  26.                 System.out.println(super.name);
  27.        
  28.     }

  29. }
复制代码
回复 使用道具 举报
子类是可以直接访问父类中的成员变量的,代码如下:
  abstract class Animal {
         public String name="dong wu";
         public abstract  void enjoy();
         

}
class Cat extends Animal{

                 //String name="ffffffffff";
        @Override
         public void enjoy() {
                 System.out.println(super.name);
                 
               
        }
         
}
public class iii{

        public static void main(String[] args)
        {
                Cat cat=new Cat();
                cat.enjoy();
        }
}
子类继承了父类中的公共的成员变量和方法,但是子类可以给父类中的成员变量赋予新的值,代码如下:
abstract class Animal {
         public String name="dong wu";
         public abstract  void enjoy();
         

}
class Cat extends Animal{

                 String name="ffffffffff";
        @Override
         public void enjoy() {
                 System.out.println(name);
                 
               
        }
         
}
public class iii{

        public static void main(String[] args)
        {
                Cat cat=new Cat();
                cat.enjoy();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马