110,567
社区成员
发帖
与我相关
我的任务
分享
class A
{
public string Name;
public List<A> Children;
}
显然这里就是指一个对象中有一些引用,这些引用指向某些 A 类对象。
类型系统本身就是对象的一种抽象命名,类型本身不存在什么“鸡、蛋”的问题。如此的对象中有个属性是指针集合,你应该先关心数据结构,之后才关心对象的类型命名。
你可以先假设任何对象在混沌时原本都没有类型命名,也并不影响对象的独立存在。命名是为了面向对象系统分析和设计的需要而增加的。因此面向对象的第一个要素是对象的独立且唯一存在性,第二才是分类性(第三是继承,第四是多态)。
对象是独立且唯一存在的。如果你把一个对象按照类型而理解为“String对象里边另外有一个Object对象”那么就会看到鬼怪了、怪力乱神了。一个对象x,它有Object类型,也有String类型,然后Object类型的描述中我们仍然使用了String类型的概念,这就好像说“中国人都是爱国的”,那么到底是先有中国人、后有爱国的人?还是先有爱过的人后有中国人呢?显然这种纠结是不对的。因为“中国人、爱国的人”是两种抽象名词儿,从两个角度来互用地描述概念,不是什么两种人在较劲。 object x = new String(datas);
一样。我们知道这个真是的对象有许多类型,其中 String 类型跟 Object 类型有继承关系。编译器据此帮我们检查程序语法、变量类型声明的兼容性。仅此而已!