java中object是引用类型还是基本类型?有点懵
C#中 object是引用类型,而值类型也属于object 值类型继承自System.ValueType类ValueType 用更合适的值类型实现重写 Object 中的虚方法。请参见从 ValueType 继承的 Enum。数据类型分隔为值类型和引用类型。值类型要么是。
引用类型就是所有继承system.object的类型对吗 首先我们从C++说起,c++可以多继承。也就是一个类型-class,可以继承自2个以上的父类型。多继承导致一个问题,很多人知道。例如,如果类型B,类型C均继承自类型A。然后类型D继承自类型B和C。那么构造D的实例的时候,由于要调用父类型的构造方法,最终会调用两次A的构造方法。结果类型D的实例有两套祖父的数据,也就是外公和爷爷长的一模一样,以后使用的时候很麻烦。每次D要和祖父打交道,都要额外的区分到底是外公还是爷爷。再说,内存里面出现两套一模一样的东西,一个用不上,还容易引起混乱,岂不是浪费,又麻烦。所以,java就通过严格的单一继承规则解决了这个问题。net当然也一样,单一集成是一个定律。那么有:所有的类型-只能继承自单一的类型;其次,大家知道,从一个Type派生的必然是另一个Type。System.Object是一个Type,如果interface继承自System.Object,那么interface必然是一个Type。那么,如果一个类型实现了一个interface,再有一个基类class,那么它们的根源都是System.Object,也即是这个类的实例也像c++一样,存在上述的问题。因此接口肯定不是继承自System.Object,否则就违反了单一继承的定律。