黑马程序员技术交流社区

标题: 抽象类的问题 [打印本页]

作者: ITnanCZ0107    时间: 2016-3-26 18:19
标题: 抽象类的问题
抽象类的问题不太懂,有没有大神解释解释
作者: Kalsifa    时间: 2016-3-26 19:10
抽象类(abstract)
               
                (1)只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。
                (2)抽象类的特点
                        A://一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方法。
                        B:抽象类是不能够被实例化的。不能够创建对象的。
                        C:如果一个类继承抽象类,那么,它要么实现抽象类中的所有抽象方法,
                           要么本身也是抽象类。
                (3)抽象类的成员特点:
                        A:成员变量:子类可以直接继承抽象类中的成员变量。(抽象类中的成员变量可以和以前是一样的)
                        B:成员方法:抽象类中分为两种方法,一种是抽象方法,这种方法在子类中必须要被实现。
                                                 一种是普通的方法。可以被子类直接继承使用。
                        C:构造方法:抽象类不能被实例化,那么它有构造方法吗?抽象类是class,那么它就有构造方法。
                                         它的构造方法有用吗?有,为了让子类实例化的时候使用。
                (4)举例:教师举例,学生举例,员工举例
                (5)抽象类的相关问题:       
                        A:抽象类中是否有构造函数?参照(3)里面的C。
                        B:抽象关键字abstract不可以和哪些关键字共存?
                                **private
                                        ***私有的,外部直接无法访问。
                                **static
                                        ***那么这个时候抽象方法就可以可以通过类名调用,但是这样是没有意义的。
                                **final
                                        ***final修饰的方法不能被重写。所以它和abstract冲突。
                        C:抽象类中可不可以没有抽象方法?
                                **可以。如果这么做只有一个目的不让你创建这个类的对象
       
       
                抽象类的特点:
                        1,抽象方法一定在抽象类中。
                        2,抽象方法和抽象类都必须被abstract关键字修饰。
                        3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
                        4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
                        如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。


                抽象类和一般类没有太大的不同。
                        该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西。
                        这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体。
                        通过抽象方法来表示。

                        抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。
                        抽象类不可以实例化。[/code]
作者: Kalsifa    时间: 2016-3-26 19:18
通俗来讲,就是父类如果是Animal,他有一个抽象方法叫eat( ) ,那么子类继承这个抽象类就可以,实现里面的抽象方法eat,这个吃的抽象方法就被具体化了。
作者: CangYe    时间: 2016-3-26 20:04
抽象类其实相当于为子类定的一个规则,要求子类必须按要求做,但具体怎么做则由子类自己定义
作者: 菜菜的小猪    时间: 2016-3-26 22:10
个人认为 可以先记住抽象类的特点,多看看代码 就懂了




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