黑马程序员技术交流社区
标题:
接口和抽象类
[打印本页]
作者:
邝雄伟
时间:
2013-2-2 15:29
标题:
接口和抽象类
02.interface Demo1
03.{
04.void function1();
05.}
06.
07.abstract class Demo2
08.{
09.abstract void funtion2();
10.}
11.
12.
13.public class Test5 {
14./*
15.* 想问大家一个问题,希望大家超越自己。
16.* */
17.public static void main(String[] args)
18.{
19./*
20.* 在主函数里无法直接创建接口和抽象类对象的原因,我有三个疑问:
21.* 1,接口和抽象类没有构造函数?
22.* 2,接口和抽象类的构造函数被私有化了?
23.* 3,两者被JVM制动识别了,是一种底层规则吗?
24.*
25.* 求详解。。。。。。。
26.*/
27.}
28.}
作者:
杨浩
时间:
2013-2-2 16:08
抽象类有构造函数,而接口没有。
但是即便抽象类有构造函数,依然不能new对象。
因为抽象类本身就是由一些事物共性的属性中抽取出的一个抽象体,它不能直接有实体对象。
接口里面只能有抽象方法,它是给事物功能做扩展的,概念上理解,就不应该有实例对象吧?
Java不是死规定什么的,他还是很讲道理滴,就像张老师讲的,你觉得这个地方,按理应该是这样么,那就是这样咯。
构造方法不能被继承的,只是子类在new对象的时候,会调用父类的构造方法,你看,一个抽象类被继承了,那么它的子类在创建对象的时候,会去调用它的构造函数,那么它不得有么?如果没,那这个抽象类的成员变量怎么办?怎么初始化?子类不要了么
至于JVM怎么识别的。。。那我就不知道咯,只能去查资料咯,不管胡说
作者:
Gaara
时间:
2013-2-2 16:18
我说下我的看法 我觉得这还是因为JAVA是面向对象来决定的。所有的对象都是通过类来描绘的(就是毕老师说的图纸),但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类的目的不是用来实例化的,是用来继承的。必须依靠子类来实例化,创建对象。
如果实在要说一个原因我认为就是这是属于java开发的一种规范。也就是规定的(我是这么理解的)
希望能帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2