第十五天学习Java(面向对象的多态性)

2020-04-02  本文已影响0人  Hoffnung_8164

2.1子类对象的创建过程

    实例化子类对象的过程

    调用子类的构造方法中,先调用了父类的构造方法,默认调用的父类的无参构造方法。

        1、子类的构造方法中,第一行一定是调用了父类的构造方法。

        2、如果没有显示的调用父类的构造方法,那么编译器会自动添加一个:super(),父类的无参构造方法。

        3、子类的构造方法中,既可以调用父类的无参构造方法,也可以调用父类的有参构造方法。

        4、父类的构造方法:

                无参构造:super();

                有参构造:super(参数);

    2.3方法的重写

        重载:一个功能方法的多种写法

        同一个类中,方法名必须一致,参数列表必须不同

        重写:继承结构

        在继承机构在,子类将父类已有的方法重新实现,这就叫方法的重写

        如果在子类中,存在方法的重写,那么默认调用的是重写之后的方法

        方法重写的规则

            1、继承结构中

            2、方法的声明:必须和父类一致

                方法名必须和父类一直

                参数列表必须和父类一致

                返回值必须和父类一致

            3、访问权限,不能比父类更加严格

            4、子类重写的方法,不能抛出比父类更大的异常

    2.4访问权限修饰符

        访问权限:就是在那能访问,通过访问权限修饰符来实现

            private:私有的,本类的

            默认的(default):注意:啥修饰符都不写,就是默认的,本类,同包下可以访问

            protected:受保护的,本类可以。同包下可以,不同包的子类可以

            public:没有限制,都可以使用

    使用原则:

        修饰类:只能是public default

        修饰成员:变量和方法:以上4个修饰符都可以

        局部变量:不能使用这些修饰符

    2.5对象的多态性

        2.5.1什么是多态

        其实就是事物的多种形态

        类的实例:new出来的-->对象

    2.6向上转型和向下转型

        向上转型:一个子类对象看成了父类类型,那么就失去了子类新增

        Animal a2 = new Cat();//

        a2,本身是子类对象,但是看成父类类型。

        那么能够访问父类的属性,不能访问子类的新增属性。

        能够访问方法,以及子类重写的方法。

三、总结

    1、子类对象的创建过程:(知道)

            1、子类的构造方法的第一行,一定是调用了父类的构造方法。如果没有,那么编译器自动添加:super();

            2、先调用父类的构造,然后再执行子类的构造。

   2、super关键字:(记住)

        用法一:指代父类的构造方法。super()。位于第一行。

        用法二:直接访问父类的属性和方法。

    3、方法的重写:(会用)

        概念:继承关系中,子类将父类已有的方法重新实现。

        英文:override

        规则:

    4、访问权限:访问权限修饰符,用于控制可见度。(知道)

        private:本类

        default:本类,同包

        protected:本类,同包,不同包(限于继承结构)

        public:没有限制

    5、对象的多态性:(未完待续。。)

        向上转型:将子类的对象,看成父类的类型。就"失去"了子类的新增。

上一篇 下一篇

猜你喜欢

热点阅读