A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亮 中级黑马   /  2012-3-3 16:49  /  2642 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张亮 于 2012-3-3 17:00 编辑

抽象类是一种特殊的类,内部结构有属性,构造方法,方法(实体方法和抽象方法)。抽象方法没有方法体。我的疑问是,抽象类的构造方法是怎样的。也是没有方法体?请高手指点指点。

5 个回复

正序浏览
我认为抽象类是有构造方法的,因为如果你把抽象类的构造方法private的话,编译可以通过,但是子类即使继承了该抽象类,也无法使用多态了。
回复 使用道具 举报
抽象类可以声明对象,但是不能使用自身的构造方法创建对象,但是可以使用子类的构造方法进行创建。
class GenericDemo
{
        public static void main(String[] args)
        {
                A a=new B(){};
        }
}
abstract class A{}
class B extends A{}
可以编译通过
回复 使用道具 举报
楼上是错误的,抽象类是可以有构造方法的,只不过,抽象类不能实例化,但可以让 具体子类来完成抽象类的具体功能,
回复 使用道具 举报
我的理解是:抽象类是不能建立对象的。所以抽象类没有构造方法!
回复 使用道具 举报
构造方法即构造函数 是给类本身初始化属性用的 对于抽象类而言,本身就不能直接拿拉用的 所以构造函数应该也只是缺省参数的多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马