面向对象三大基本特征——继承

来源:互联网 发布:淘宝评论完在哪里看 编辑:程序博客网 时间:2024/06/12 13:14

继承概念:

                

(一张图,已经诠释一切。这就是继承!)

继承需要符合的关系:is-a,父类更通用更抽象,子类更具体

-----------------------------------------------------------------------------------------------------------------------------------------------------------

继承(extends):

           1、子类拥有父类非private的属性和方法

           2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展

           3、子类可以用自己的方式实现父类的方法


protected关键字:

                           与private不同,其它类成员不能访问,唯其子类才可访问。


向上转型:

                子类转父类,安全。(子类功能比父类更加强大,自动转型)——

                缺点:会丢失数据,因为变量不能被重写

向下转型:

                 父类转子类,不安全。(因父类功能弱与子类,所以需要强制转换)

                  在强制转换中,加instanceof关键字来判断,能转返回true,反之false

                  缺点:编译不会出错,但运行时会出错,所以不安全!


缺陷:1、父类变,子类就必须变。

           2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明

           3、继承是一种强耦合关系

           注意事项(由于JAVA只支持单继承,所以子类只能有一个父类,而父类可以有多个子类)


super特点:

                    1、super代表父类对象的引用,与this(当前对象)不同

                    2、当子父类的成员出现同名,可通过super进行区分

                    3、子类构造方法中,通过super关键字调用父类的构造方法

注意事项 (当构造一个子类对象时,一定会先调用父类的构造方法来构造父类对象,调用父类构造方法语句必须时子类构造方法中第一条指令)


  作用:

        1、特殊变量super,提供对父类的访问

        2、可以使用super访问父类被子类隐藏的变量或覆盖的方法

        3、每个子类构造方法的第一条语句,都是隐藏式地调用super(),如果父类没有这种形式的构造函数,编译就会报错

阅读全文
0 0