实例化类对象是什么意思?

如题所述

把一个类,形象化,通过类的实例,就是对象,来实现类的功能。因为类是抽象的,所以需要实例化对象才能使用类。

类student是person的子类,所以从数据结构关系上讲,student不但拥有person即父类的一切特性还有着自身特有的属性。而在存储区域上student的分布则是区域的开始部分是父person类的所有数据,然后是student类自身的特有属性。所以他们的关系就是子类的数据是在父类的数据后面加上了一些自己的特性。

既然如此那么当我们使用子类实例化一个对象子后,那么这个对象同样也拥有了父类的所有特性,所以这时如果我们将这个子类的对象进行类型转化为父类的对象是完全可以的,因为子类的对象拥有父类的一切特性。

而Person p = new Student()这个语句其实就相当于隐式声明了一个子类对象然后将其隐式转化为父类的类型。所以这里的p应该是父类person的对象。这样做的好处是比如你声明了一个接口或者抽象类,然后要使用他的实例化对象,但是抽象类是不能直接实例化的,所以就需要靠子类来帮忙了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-26
class void 正常人{
形状 手=(描述手的形状);
形状 脚 =(描述脚的形状);
形状 头=(描述头的形状);
public 数量 手的数量=2;
public static 数量 脚的数量=2;//这句话里面多了一个static ,和上句有着相同点和不同点。看下文。
行为 走路;
行为 吃饭;
.....
....
}

class void 超人 extends 正常人{
行为 飞行;
...
...
}

这个正常人就是一个类,用于描述人的特征,所有特征。但它只是一个概念,并不是实实在在的具体的某个人。
var 正常人 黄三= new 正常人();//对人进行实例化,黄三就是人的一个实例。黄三具有正常人的特征和一切符合正常人的行为。是指的实实在在的某个人。
var 正常人 李四=new 正常人();
var 蜘蛛侠=new 超人();对超人进行实例化,蜘蛛侠就是超人的一个实例,它不仅具有正常人的特征及行为,还具有正常人所没有的特征行为。
此时,你可以控制黄三、李四或者蜘蛛侠。
黄三不幸的发生了车祸,这时我们可以通对引用黄三的手的数量来达到目的。黄三.手的数量=1;
不幸发生了大地震,全世界所有人的脚都只有一个人。我们可以修改脚的数量。 一是正常人.脚的数量=1。此时,不管是黄三,还是李四,还是超人,脚都只有一只了。以后生下来了孩子(实例话一个正常人)也只有一只脚;
二是,黄三.脚的数量=1;李四.脚的数量=1;如果还有张五,赵六。。。,你也得为一一赋值。但以后生下来的孩子(实例化一个正常人)还是有两只脚。
这就是类与实例引用的区别。当然啦,在这个程序代码里在,你可以单独修改黄三,李四或者超人的脚的数量,但是,你不能一下子使所有正常人的手都变成一只,除非为for循环。好玩反?
第2个回答  2018-01-05
比如 房子 是一个类型
某一个房子 就是一个房子类的实例,门牌号就是该实例对象的引用。

创建一个类的例子
1 分配内存(房子建立的那个小区里)
2 取得该内存的地址,即引用(门牌号)
相似回答