java中的new用于实例化一个对象
T1 a= new T1();
T2 b= new T1();
区别:
问题1:不是实例化一个a,是实例化一个T1
T1 的一个 对象的引用 a 指向了堆空间里的一个新T1对象
------------------------------------------
new是java里面的关键字,一般用于创建一个新的对象。
T1 a=new T1():表示创建一个新的T1对象
T2 b=new T1():这种多用在接口类与实现类之间 或者子类与父类之间
在接口类与实现类之间: T2为接口类,T1为T2的实现类
例如:Collection,list,set,map都为接口类,都不能实例化。继承自他们的ArrayList,Vector,HashTable,HashMap,stack都是具体类,可以实例化
Map map = new HashMap
在子类与父类之间:T2为父类,T1为T2的实现类
这些用法都为java中多态性的一个表现
JAVA中都是用引用来操作对象,a是引用,new T1()是对象,T1 a = new T1()这段代码,则是将他们连接起来,这样就可以通过a来操作new T1()这个对象;
java的实例化过程
你要买一个苹果,售货员给你一个苹果;
你要买一苹果, 相当于 --------- Apple apple = null;
这个时候你并没有拿到苹果---------java没有给你申请内存,这个时候apple还什么内容都没有,只是告诉别人apple是个苹果
售货员给你个苹果 ----------apple = new Apple();
这个时候你拿到了苹果 ---------- java给你开辟了空间,并且apple可以使用苹果的特性,比如:apple.getPrice(),apple.getTaste()
这就是apple的实例化