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

© 崔司龙 中级黑马   /  2015-6-30 22:29  /  357 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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不能共存.

2 个回复

倒序浏览
还没学到抽象类,先看看,学习一下。。。。。。
回复 使用道具 举报
学习了学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马