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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 温晓慧 中级黑马   /  2015-1-23 19:50  /  1971 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

具体是class A extends class B,A类中有个dec方法可以打印属性
  1. A a =new A("aa","bb",12);
  2. B b =new B("cc","dd",33);
  3. a.dec();
  4. b.dec();
复制代码

出现的结果就是
aabb12
aabb12


为啥a.dec();也打印的是b传的值啊?
不知道能不能,看懂,先这么写。不行上全部代码

子类调用父类的构造函数,
父类对象中的属性也会跟着都变化么?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

17 个回复

倒序浏览
:handshake
回复 使用道具 举报
父类的构造函数会变化,因为,new对象的时候,会访问本类的构造函数,但是,构造函数上,会有一条默认的语句,叫super(),就是默认访问父类的构造方法!
回复 使用道具 举报
把代码都弄上。
回复 使用道具 举报
感觉3楼的说法是对的
回复 使用道具 举报
比较难懂
回复 使用道具 举报
能否把全部代码贴出来
回复 使用道具 举报
估计和静态有关系吧,把整个代码发上来啊
回复 使用道具 举报
enjoy 中级黑马 2015-1-24 13:28:42
9#
继承有点绕
回复 使用道具 举报
把完整的代码贴出来吧
回复 使用道具 举报
  1. class B
  2. {
  3.                
  4.         String X;
  5.         String Y;
  6.         int Z;
  7.        
  8.         B(String x,String y,int z)
  9.         {
  10.                 this.X = x;
  11.             this.Y = y;
  12.             this.Z = z;               
  13.         }
  14.        
  15.         public void dec()
  16.         {
  17.         System.out.println(X+Y+Z);       
  18.         }
  19.        
  20. }

  21. class A extends B
  22. {
  23.        
  24.         A(String x,String y,int z)
  25.         {
  26.                 super(x,y,z);
  27.         }
  28.         public void dec()
  29.         {
  30.         System.out.println(X+Y+Z);       
  31.         }
  32. }

  33. class C
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.                 A a =new A("aa","bb",12);
  38.                 B b =new B("cc","dd",33);
  39.                 a.dec();
  40.                 b.dec();
  41.         }
  42. }
复制代码


不知道你的代码是不是这样的,我运行是正常的
http://bbs.itheima.com/forum.php?mod=attachment&aid=NjM0NTh8ODhhNTJkNTZmYTVmZGViY2Y5ZDgxOTIzYzQ0YTIzOTh8MTczMTA5ODAyNQ%3D%3D&request=yes&_f=.png

QQ图片20150124133459.png (833 Bytes, 下载次数: 191)

QQ图片20150124133459.png
回复 使用道具 举报
你这写的有错啊,A继承B,A中有个dec方法,那你创建B对象,b.dec();会报错
回复 使用道具 举报
gzy 来自手机 中级黑马 2015-1-24 15:30:45
13#
1111111111111
回复 使用道具 举报
不好意思,各位大神,小弟今天出去干活了,这么多大神帮忙解答
回复 使用道具 举报
package otherExam2;
/*
*  假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。
*      经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。
*      请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
* */
public class Exam1 {
        public static void main(String[] args) {
                Person p = new Person("李四","12345",1223.22d);
                p.dec();
                Maner m = new Maner("张经理","99999",201333.11d);
                p.dec();
                m.setBonus(1234.22d);
                m.dec();
                m.aec();
                System.out.println(m.getBonus());
        }

}
class Person
{
        public static String name;
        public static String ID;
        public static double money;
        public Person(String name,String ID,double money)
        {
                this.name =name;
                this.ID= ID;
                this.money=money;
        }
       

        public static void dec()
        {
                System.out.println("正常工资为"+name+","+ID+","+money);
        }
}
class Maner extends Person
{

        public Maner(String name, String ID, double money) {
                super(name, ID, money);
                // TODO Auto-generated constructor stub
                this.getBonus();
        }
       
        private  double bonus;
        public  double getBonus() {
                return bonus;
        }
        public void setBonus(double bonus) {
                this.bonus = bonus;
        }
        public static void aec()
        {
                System.out.println("奖金为:");
        }
}


回复 使用道具 举报
不好意思,电脑问题,不能在代码里编辑,只能直接发了。。。。抱歉
回复 使用道具 举报
Person p = new Person("李四","12345",1223.22d);
p.dec();
Maner m = new Maner("张经理","99999",201333.11d);
p.dec();
在这里你注意下 你的对象全是P 如果你下面的对象是m结果值就会改变了 这里和继承的关系不大
p是父类创建的引用对象 而m是子类创建的引用的对象 你下面还用p引用函数 他引用的地址值是上面
new Person的 而不是子类对象创建的Maner m
回复 使用道具 举报
最后那个Manner m 写的有点会让你误解 那个m就是创建的对象 他引用的是new Manner 在堆中新开辟的地址值 你用p调用的是 new Person在堆中开辟的地址值 其实你是调用了2次相同的地址值 所以一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马