首页 > 编程语言 >关于javaSE继承中super的考究

关于javaSE继承中super的考究

时间:2022-10-05 14:45:12浏览次数:105  
标签:salary System sex println javaSE 父类 super 考究 out

在对父类非private属性的使用过程中

  1. super专门用来指代继承过来的属性,在子类没有与父类重名的情况下。实际功能与this并无二异
package gunjo.kirito.union.course;

class ManKind {
    int sex;
    int salary;

    ManKind() {
    }

    ManKind(int sex, int salary) {
        this.sex = sex;
        this.salary = salary;

    }

    public void manOrWomen() {
        if (sex == 1) {
            System.out.println("man");
        }
        if (sex == 0) {
            System.out.println("women");
        }

    }

    public void employeed() {
        if (salary == 0) {
            System.out.println("no job");
        } else {
            System.out.println("job");
        }
    }
}

class Kids extends ManKind {
    int yearsOld;

    public Kids(int age, int sex, int salary) {
        // this.yearsOld = age;
        // this.sex = sex;
        // this.salary = salary;
        /*
         * 上述赋值方法结果如下
         * women
         * job
         * 
         * 孩子年龄为:10
         * 父 or 母1
         * 父母工作1
         * 父 or 母方法
         * man
         * 父母工作否 方法
         * job
         * 
         * women
         * job
         */
        this.yearsOld = 11;
        super.sex = 1;
        super.salary = 0;
        /*
         * women
         * job
         * 
         * 孩子年龄为:11
         * 父 or 母1
         * 父母工作0
         * 父 or 母方法
         * man
         * 父母工作否 方法
         * no job
         * 
         * women
         * job
         * 
         * 由上述运行结果:super等同于专门用来指代继承过来的属性,
         * 在子类没有与父类重名的情况下。实际功能与this并无二异
         */
    }

    public void printAge() {
        System.out.println("孩子年龄为:" + this.yearsOld);
    }
}

public class TestKids {
    public static void main(String[] args) {
        ManKind m1 = new ManKind(0, 1);
        Kids k = new Kids(10, 1, 1);

        // 父类本身的
        m1.manOrWomen();// 父类正常调用 女
        m1.employeed();// 父类正常调用 有工作

        // 子类调用继承的
        System.out.println();
        k.printAge();
        System.out.println("父 or 母" + k.sex);// 1
        System.out.println("父母工作" + k.salary);// 1
        System.out.println("父 or 母方法");
        k.manOrWomen();
        System.out.println("父母工作否 方法");
        k.employeed();

        // 看看父类本身是否改变
        System.out.println();
        m1.manOrWomen();// 父类正常调用 女
        m1.employeed();// 父类正常调用 有工作
    }
}
  1. 但是,如果子类属性有与父类属性同名的情况:super专门指代继承的父类成员域,this指代子类本身的成员域,子类除了直接调用父类公共方法以外,依旧无法直接对父类本身的成员域进行修改。

详情参见:
java子类对父类继承的属性在不同修饰词下的访问权限

标签:salary,System,sex,println,javaSE,父类,super,考究,out
From: https://www.cnblogs.com/bleu/p/16755555.html

相关文章

  • Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution
    第一遍:摘要:现有的SR方法有两个潜在的限制:首先,学习从LR到HR图像的映射函数通常是一个病态问题,因为存在无限个HR图像可以下采样到相同的LR图像;其次,配对的LR-HR数据在现实应......
  • super用法之一隅
    在没有直接父类的类中使用super1classA:2deffunc(self):3print("A")4super().func()567classB:8deffunc(self):9......
  • javaSE基础-IO流
    IO流File类基本概念File类的一个对象,代表一个文件或一个文件目录(俗称文件夹)File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时......
  • [论文阅读] Look Closer to Supervise Better: One-Shot Font Generation via Compone
    pretitle:LookClosertoSuperviseBetterOne-ShotFontGenerationviaComponent-BasedDiscriminatorref:https://www.bilibili.com/video/BV13Y411w7yLpaper:h......
  • super学习
    2022-10-02 16:27:38supersuper代表的是“当前对象(this)”的父类型特征概念1、super是一个关键字,全部小写。2、super和this对比着学习。this:this能出现......
  • supervisor /usr/lib64/python2.7/socket.py line: 224
    配置了supervisor之后,写好了配置,最后发现一直报这个错误,supervisorerror:<class‘socket.error’>,[Errno2]Nosuchfileordirectory:file:/usr/lib64/python2.7/......
  • super
    protected:可以被同一个包中的所有类访问,可以被所有子类访问,不管子类是否在同一个包中。使用例子:父类构造无参设定属性写一个方法publicclassHero{publicHero......
  • JavaSE基础
    1.Java语言跨平台原理平台指的是不同类型的操作系统。Java语言可以跨平台是因为Java语言使用Java虚拟机屏蔽了具体的操作系统信息,不同的操作系统对应着不同的Java虚拟机......
  • SuperMap iServer在linux环境中部署
    安装说明:下载地址:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx版本:SuperMapiServer9Dv9.1.2系统:centos7.4安装环境硬件要求Linux系统上安......
  • Semi-supervised New Event Type Induction and Event Detection
    Motivation手动构造事件类型和标注数据成本非常高手动标注的时间覆盖率比较低Method本文提出了一个基于VQ-VAE的半监督事件检测方法。TriggerRepresentationLear......