zoukankan      html  css  js  c++  java
  • 【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承

    【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承

    super的使用

    1.使用super访问父类的域和方法

    注意:正是由于继承,使用this可以访问父类的域和方法。但是有时为了明确指明父类的域和方法,就要用关键字super。this和super都是指当前同一个对象

    例如:父类Student有一个域age,在子类Student中用age,那么this.age,super.age来访问age是完全一样的:

        void testThisSuper(){
            int a;
            a = age;
            a = this.age;
            a = super.age;
        }
    

    当然,使用super不能访问在子类中添加的域和方法

    有时需要使用super以区分同名的域和方法

    • 使用super可以访问被子类所隐藏了的同名变量
    • 又如,当覆盖父类的同名方法的同时,又要调用父类的方法,就必须使用super。如:
        @Override
        void sayHello(){
            super.sayHello();
            System.out.println("My school is" + school);
        }
    

    在覆盖父类的方法的同时,又利用已定义好的父类的方法

    2.使用父类的构造方法

    构造方法是不能被继承的

    • 比如,父类Person有一个构造方法Person(String, int),不能说子类Student也自动有一个构造方法Student(String, int)

    但是,子类在构造方法中,可以用super来调用父类的构造方法。

        Student(String name, int age, String school){
            super(name, age);
            this.school = school;
        }
    

    使用时,super必须放在第一句

    父类对象与子类对象的转换

      • 类似于基本数据类型数据之间的强制类型转换,存在继承关系的父类对象和子类对象之间在一定条件下也可以相互转换
        (1).子类对象可以被视为其父类的一个对象,如一个Student对象也是一个Person对象
        (2).父类对象不能被当做其某一个子类对象
        (3).如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数
        (4).如果父类对象引用指向的实际是一个子类的对象。那么这个父类对象的引用可以用强制类型转换(casting)成子类对象的引用
  • 相关阅读:
    Manjaro 安装 VMware Pro 15
    RAID-0-10 搭建和使用
    列表的切换按钮,是什么实现的?
    动态表单的设计
    如何修改自定义表单的名字,不适用diyname,直接使用id
    php关于批量替换的测试
    fastadmin删除控制器,删除菜单,提示not found
    fastadmin自定义表单,如何根据字段信息,创建表,而且,可以随时修改字段的顺序
    fastadmin如何获取新增后的id,这个可以使用模型的钩子函数。
    fastadmin如何在弹窗内跳转?以及如何在非弹窗页面,做tab选项卡
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/9905020.html
Copyright © 2011-2022 走看看