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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 回忆~坚 高级黑马   /  2014-3-10 12:57  /  1714 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 回忆~坚 于 2014-3-10 16:22 编辑

Dog dog = new Dog();
Cat cat =(Cat)dog;

求解这里有几个对象,怎么判断对象的个数?

评分

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

查看全部评分

10 个回复

倒序浏览
这里有只有一个dog对象。第一句话应该没问题。Cat cat =(Cat)dog;这句话并没有新建对象,每个对象有一个地址,设dog的地址是   60;第二句就是把60,也就是dog的家门的钥匙给cat,这时,cat就能进去了。不过你学的代码涉及到类型转化问题,不符合日常逻辑,因为你cat写出dog的父类。

评分

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

查看全部评分

回复 使用道具 举报
你用了new就申请了对象的内存空间,所以dog是一个对象了。
但是你dog强转cat。假如这两个类的基类都是动物类的话那是不行的。
假如你cat是dog的基类的话,那cat只是一个引用,即cat只是一个变量,指向了dog这个对象

评分

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

查看全部评分

回复 使用道具 举报
从表面上看好像有两个对象一个dog,一个cat。但实际不然 楼主首先从内存空间中创建了一块属于Dog类对象的空间。而声明cat的时候是强转dog对象的,并没有声明内存空间。所以这里存在一个引用类型的关系。好比你在你电脑中的D盘中有个程序,它本身就好比dog,而你把它新建个快捷方式到桌面就好比cat,但是它们指向的是同一个文件。
回复 使用道具 举报
表面理解是有两个对象(一个是dog另一个是cat)但是要注意对象之间的相互转换(dog转换为cat)虽然有时可以但是理论上是不可以的。
回复 使用道具 举报
这里有只有一个dog对象;dog转换为cat看似可以,但是理论是行不通的,所以这里面就只有dog这个对象!
回复 使用道具 举报
azve 中级黑马 2014-3-10 15:05:37
7#
Q.z.l 发表于 2014-3-10 13:43
你用了new就申请了对象的内存空间,所以dog是一个对象了。
但是你dog强转cat。假如这两个类的基类都是动物 ...

要不要每次都回答这么好。。。搞得我都不好意思说话了:lol
回复 使用道具 举报
Q.z.l 中级黑马 2014-3-10 15:55:21
8#
azve 发表于 2014-3-10 15:05
要不要每次都回答这么好。。。搞得我都不好意思说话了

:L分数差不多够了。。留给你们回答呗:handshake
回复 使用道具 举报
段誉 初级黑马 2014-3-10 16:29:45
9#
本帖最后由 段誉 于 2014-3-10 16:31 编辑

Dog dog = new Dog();
Cat cat =(Cat)dog;
里面虽然有两个对象,但是dog对象不能赋值给car的对象。
一般的有类,看new的个数判断,但是对象不能强制转换;
calss dog{

public text {
    public static void main (String[]  args){      dog p1 =new dog();
      dog p2 =new dog();
     dog p3=new dog();

     dog p4 =new dog();

     dog p5 =new dog();


   }


new了 5个所以有啦5个对象。

我看楼主看代码只看啦一半把;这应该是关于对象强制转换的把 。直接转化没见过;要实现dog也有这功能,
你可以应用继承去来实现。 创建一个dog类, 用car的类去继承dog的内容。
class dog(){

class car  extends(){



评分

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

查看全部评分

回复 使用道具 举报
azve 中级黑马 2014-3-10 20:15:56
10#
Q.z.l 发表于 2014-3-10 15:55
分数差不多够了。。留给你们回答呗

哈哈~~不怕,我们慢慢来。。
回复 使用道具 举报
Q.z.l 发表于 2014-3-10 15:55
分数差不多够了。。留给你们回答呗

加油。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马