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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hehaiwei 中级黑马   /  2016-3-3 00:34  /  669 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.Java中怎么理解“引用”,比如Animal a=new Cat();表示动物类引用指向猫类型对象,引用怎么理解?
2.抽象类的构造函数是为了给子类对象进行初始化的,怎么理解????构造函数不是给本类对象进行初始化的么?
3.怎样才能让其他类不创建本类对象?

4 个回复

倒序浏览
说说我的理解,可能不完全正确:
1.在Anmail a = new Cat();中,引用可以理解为"a",它在栈内存中指向了堆内存中的new Cat()这个对象
2.构造函数的确是给本类对象初始化的。但是在抽象类里,因为会有子类去继承这个抽象类,而子类继承父类时,子类构造函数一定要访问到父类的构造函数,所以抽象类如果想要别的类继承的话,一定要提供构造函数(系统默认的也行)。
3.私有构造函数

评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2 很给力!

查看全部评分

回复 使用道具 举报
我的天,面向对象好难!!!!
回复 使用道具 举报
1.new Cat()会在堆内存中开辟空间,储存Cat对象,并获得地址值,然后将地址值赋给栈内存的变量a,这样就形成了栈里面变量a,指向堆内存中的Cat。

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 很给力!

查看全部评分

回复 使用道具 举报
2.子类创建对象时,系统会默认先访问父类的无参构造,因此会对子类对象进行初始化。3.将本类中的构造方法私有化就行了,加private
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马