JAVA中new的一点问题

[复制链接]
查看11 | 回复7 | 2010-1-15 15:52:53 | 显示全部楼层 |阅读模式
(1)new 出一个T1的实例,也可以像你那么多,实例化一个T1的对象,对象名为a(2)T2 b=new T1()这个用法必须要T1继承了T2的时候才可以用,两个的区别就是,当T1 a=new T1()的时候,你的a对象只能调用T1类里的方法,当T2 b=new T1()的时候,其实b调用的是T2类里的方法
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
T1 a = new T1()中前面一个T1是类型,说明变量a是T1类型的后面一个T1可以理解为构造函数,构造一个T1的实例所以T2 b = new T1() 的意思就是构造一个T1类的实例把它赋给T2类型的变量,这样使用的话只有T2是T1的父类才正确
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
new是java里面的关键字.一般用于创建一个新的对象.T1 a= new T1();表示创建一个新的T1对象.T2 b= new T1();这种多用在接口类与实现类之间或子类与父类间在接口中使用时:T2应该是一个接口类,T1为T2的实现类。在子类与父类关系时:T2为父类,T1为T2的子类。这些用法都是Java中多态性的一个表现
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
问题1就是实例化一个T1类的对象。问题2应该会报错吧,T2 b = new T1();T1跟T2是两个不同的类.实例化的时候T2类的对象装不了T1类的。1. 就是实例化 一个 T1 , 后台就开始分配内存 等等. 2. 这是个多态的现象.T1 肯定继承 自 T2. 比如 T2 是自行车.T1是山地自行车... 那么 山地自行车是不是自行车呢.? 肯定是... 所以T2 = new T1();但 反过来 自行车 是不是 山地自行车呢 ? 肯定不是. 所以T1 不能 等于 new T2();
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
T1 a= new T1();一个T1类型的T1对象a。T2 b= new T1();一个T2类型的T1对象b。(这种情况下要能相互转换一般是T2是T1的接口)。
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
问题1:不是实例化一个a,是实例化一个T1问题2:就是new出两个T1的实例;你可以把T1看成是一个模子,new T1();就是按照这个模子做一个东西出来,new几次就做几个,所以做出来的东西并不是一个东西,但是它们很像,明白了么? 不好意思看错了,T2 b=new T1();如果T1继承自T2的话那么你的程序就正确,否则就是错误代码。如果正确的话,T2 b就是声明要创建的b是T2类型,而new T1();就是创建了一个T1类型赋值给b,因为T1是T2的子类所以是允许的,你调用方法的话,如果T1和T2里有同名同参同返回方法那么调用的是T1里的。
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
T2 b= new T1();如果这句编译时通过了的话那就说明T1继承了T2T2是T1是父类
回复

使用道具 举报

千问 | 2010-1-15 15:52:53 | 显示全部楼层
T1 a= new T1();就是new一个对象呗T1 的一个 对象的引用 a指向了堆空间里的一个新T1对象T2 b= new T1();这个也行?T2 和 T1都不是同一个类 咋不用强制转换的吗?############################################################第一个问题:这句话 T1 a 是告诉虚拟机,开辟一个可以存放T1类型的空间anew T1()就是获得一个T1的对象连起来就是开辟一个可以存放T1实例的空间a,并且指向一个T1的实例。一般说就是,新建 一个T1的对象a第二个问题:T2 b开辟了一个可以存放T2类型的空间由于T1是T2的子类,所以T1可以放在T2的空间里这时候调用T1与T2中共有的方法时,由于方法覆盖,所以执行的是T1中的方法但是由于b的类型是T2,所以b这个对象不可以使用T1类的专有方法(也就是T1有的方法,但是T2没有这个方法)如果b希望执行T1中的专有方法将b转换成T1类型,就可以了也就是做一个这个操作:(T1)b############################################################
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行