黑马程序员技术交流社区
标题:
抽象类为什么不能被实例化
[打印本页]
作者:
曹昌豪
时间:
2012-6-1 10:14
标题:
抽象类为什么不能被实例化
抽象类的作用是什么?为什么不能被实例化?在Writer类中我发现了
构造方法
protected Writer()
创建一个新的字符流 writer,其关键部分将同步 writer 自身。
protected Writer(Object lock)
创建一个新的字符流 writer,其关键部分将同步给定的对象。
既然不能被实例化为什么还提供供子类调用的构造方法?
作者:
田建
时间:
2012-6-1 11:26
抽象类之所以不能被实例化,是因为它里面都是抽象方法,实例化对象调用其里面的方法没有意义,我们需要做的就是覆写掉里面的抽象方法。
作者:
潘东升
时间:
2012-6-1 12:23
提供子类调用的构造方法,是放在子类的构造方法内首行,说明初始化子类对象的时候先加载了父类的父类的构造方法,也就是加载了父类的属性和方法,这样子类对象就能调用父类的成员,这也就是子类继承父类的意义:为了使用父类的成员。如果不提供子类调用的方法,也就无法加载父类的成员,继承就毫无意义
作者:
潘东升
时间:
2012-6-1 12:30
本帖最后由 潘东升 于 2012-6-1 12:31 编辑
提供子类调用的构造方法,是放在子类的构造方法内首行,说明初始化子类对象的时候先加载了父类的构造方法,也就是加载了父类的属性和方法,这样子类对象就能调用父类的成员,这也就是子类继承父类的意义:为了使用父类的成员。如果不提供子类调用的方法,也就无法加载父类的成员,继承就毫无意义
作者:
于清云
时间:
2012-6-1 13:47
我打个比方吧。
抽象类:人类
子类:我们每个人
抽象方法:吃饭
因为我们每个人都继承了抽象类人类,故我们都会吃饭,但是我们吃饭时候吃的东西不一样。
人类这个抽象类只是强制我们要吃饭,但是我们想吃啥,它就管不着了。呵呵。。。
作者:
whocases
时间:
2012-6-2 20:52
首先抽象类不能实例化是因为它不代表那一个具体的事物,而是指的那一类 如:我申明一个抽象类车.很显然你并不能把车这个类来创造某个具体的物体来,你只有派生一个汽车,你才可以生产出来。
作者:
包晗
时间:
2012-6-3 01:00
抽象类不能实例化是因为他是抽象的.
具体的类才能实例化
作者:
朝哥
时间:
2012-6-3 09:39
抽象类不能实例化的真正原因是
开发这个语言的sun公司就是这么定义的,你new一个就会报错。
抽象父类给提供给子类一个方法,主要是起
规范
作用,你不写父类这个方法也行。
如果是接口的话,子类就一定要复写父类所有的抽象方法。
作者:
王月
时间:
2012-6-3 10:28
三楼
同学说的没错
,
lz好好理解一下。
我稍微补充一下,学java时要先搞明白它的思想。
抽象类之所以存在就是要子类去实现他的所有的抽象方法,既然是抽象的,创建它的对象后调用它的方法什么都不会产生
,所以毫无意义。没有意义做在它干什么,所以不可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2