黑马程序员技术交流社区

标题: 抽象类无法实例化 [打印本页]

作者: 雨过丶天已晴    时间: 2013-10-13 21:34
标题: 抽象类无法实例化
本帖最后由 雨过丶天已晴 于 2013-10-22 21:19 编辑

小伙伴们,
    抽象类无法实例化,这句话对不对?
    通过多态算不算实例化呢?
    新人第一次发
作者: 枫儿    时间: 2013-10-13 21:41
抽象类是不可以实例化的,只能由子类继承并复写父类所有的抽象方法,而他本身是不能实例化,抽象类不能实例化这句话是对的,通过子类的方式继承的抽象类的那子类必须是不能抽象的咯,而被实例化的子类已经不是抽象类了。。。再弱弱的问一句。哥们准备走哪期啊???
作者: loading……99.9    时间: 2013-10-13 21:44
能不能实例化,最简单的验证方法看能不能通过new 创建一个新的对象出来,能new出来就表示能实例化,反之则不能;多态,那里只是申明了一个引用,不算实例化。
作者: 赖波    时间: 2013-10-13 21:46
抽象类是不能实例化,没错。
多态,表意上可以看出多种形态,
多态:1.要继承2.子类重写父类方法3.父类引用子类
例:参数,放一个父类,这个父类的子类就都能做为参数
作者: 雨过丶天已晴    时间: 2013-10-13 21:51
枫儿 发表于 2013-10-13 21:41
抽象类是不可以实例化的,只能由子类继承并复写父类所有的抽象方法,而他本身是不能实例化,抽象类不能实例 ...

想去26,估计赶不上啊,哥们打算啥时候呢?多谢哥们的解答,我的第一次被你抢走了:lol
作者: hoyouly    时间: 2013-10-13 21:53
哥们,抽象类不能实例化这句话是正确的,多态就是事物存在的多种形式,可以通过多态声明,指向子类对象,但是这并不是实例化,就像楼上说的那样,实例化的标志就是看能不能new 对象,你能通过new 创建抽象类对象吗???
作者: 雨过丶天已晴    时间: 2013-10-13 21:56
loading……99.9 发表于 2013-10-13 21:44
能不能实例化,最简单的验证方法看能不能通过new 创建一个新的对象出来,能new出来就表示能实例化,反之则 ...

感谢解惑:lol
作者: 枫儿    时间: 2013-10-13 21:56
雨过丶天已晴 发表于 2013-10-13 21:51
想去26,估计赶不上啊,哥们打算啥时候呢?多谢哥们的解答,我的第一次被你抢走了 ...

嘿嘿。哥们也想26  可是也怕基础到时候不牢固  赶不上 只能27了。还有 这是哥们第一次坐下来解答问题,所以 第一次解答也被你抢走了
作者: 小痞痞    时间: 2013-10-13 21:57
抽象类无法实例化,这句话对不对?
这个肯定是对的
(1)只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。
(2)抽象类的特点
        A:一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方法。
        B:抽象类是不能够被实例化的。不能够创建对象的。
        C:如果一个类继承抽象类,那么,它要么重写抽象类中的所有抽象方法,要么本身也是抽象类。
(3)抽象类的成员特点:
        A:成员变量:子类可以直接继承抽象类中的成员变量。(抽象类中的成员变量可以和以前是一样的)
        B:成员方法:抽象类中分为两种方法,一种是抽象方法,这种方法在子类中必须要被实现.一种是普通的方法。可以被子类直接继承使用。
        C:构造方法:抽象类不能被实例化,那么它有构造方法吗?抽象类是class,那么它就有构造方法.它的构造方法有用吗?有,为了让子类实例化的时候使用。
通过多态算不算实例化呢?
答案应该是不算
多态的前提A:类与类(或接口)要有继承(或实现)关系。
                B:一定要有方法的重写。
                C:一定要有父类或者接口的引用指向子类的对象。
要实现多态必须有以上的前提才能构实现
例如Fu f = new Zi();
Fu类是被abstract修饰   而子类不是抽象类
这只是将Fu类的子类Zi进行了实例化   并不是将Fu类进行实例化

作者: To    时间: 2013-10-14 09:50
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2