黑马程序员技术交流社区

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

作者: 崔司龙    时间: 2015-6-30 22:29
标题: java中的抽象类
1. 概念:抽象方法--抽取方法的声明,不做具体的实现。用abstract修饰
                        包含抽象方法的类。
                注意:对于一个方法而言,方法后面的{}和;在一般情况下是不能共存的。
                public void show() {
                        // 这是实现了的方法。只不过你的实现内容是空的
                }
               
                public abstract void show(); // 没有实现,它是抽象的。
       
                类比构造方法没有返回值来记忆。
               
        2.抽象类特点:
                1:抽象方法和抽象类用关键字abstract表示。
                2:有抽象方法的类一定是抽象类。
                  抽象类中不一定有抽象方法。
                3:抽象类不能被实例化。如果想使用抽象类里面的功能,需要创建该类的(非抽象)子类对象,然后调用方法
                4:如果一个类继承抽象类,那么
                        这个类要么本身也是抽象类。
                        这个类重写父类的所有抽象方法。
                5:抽象类强制要求子类实现某些功能。
               
                抽象类可以强制要求其子类必须完成某种功能,这样说,抽象类的功能就比普通类的功能强大了。
                所以会在放弃继承的部分好处的前提下,使用抽象类。
        3.抽象类的成员特点:
                1.成员变量:可以是变量,也可以是常量
                2.构造方法: 有构造方法。用来初始化父类的数据供子类使用的。
                3.成员方法:可以有抽象方法。也可以有非抽象的方法。
                        抽象方法:强制要求子类实现某些功能的。
                        非抽象方法:供子类继承使用的,提高代码的复用性。
        案例需求:
                传智播客有两类老师:
                        基础班老师
                                属性:姓名,年龄
                                行为:讲课(JavaSE)
                        就业班老师
                                属性:姓名,年龄
                                行为:讲课(JavaEE)

                由于讲课内容不一样,但是都有讲课的功能。
                所以,我们把讲课抽取出来。定义一个Teacher类,强制要求其子类必须会讲课。
                接着来再定义一个基础班老师继承Teacher,一个就业班老师继承Teacher,最后在另外一个类中测试两个不同老师的成员。
        4.抽象关键字abstract不可以和哪些关键字共存
                1.final:因为被final修饰的类不能被继承,被final修饰的方法不能被重写。
                2.private:因为被private修饰的方法不能重写,但是abstract方法要求重写。
                3.static:因为一个方法要是同时被static 和abstract修饰,那么这个方法就可以类名.方法名调用.
                          但是此方法是抽象的,调用也无意义,所以就导致static 和abstract不能共存.
作者: samove    时间: 2015-6-30 22:33
还没学到抽象类,先看看,学习一下。。。。。。
作者: 房东告诉对方    时间: 2015-7-15 16:19
学习了学习了




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