超级关键字用法

时间:2019-07-22 03:25:10

标签: java inheritance super

我是Java的新手,我有几个基本问​​题:

  1. 静态变量/方法使用什么内存?
  2. 关键字“ Super”仅在方法重写的情况下才有意义吗?

2 个答案:

答案 0 :(得分:0)

关键字df['column'] = df['column'].apply(lambda x: str(x)) 可用于:

  • 声明通用类型:

    super
  • 从子类构造函数中调用基类构造函数:

    public class Foo<E super Bar> { // <=====
        ...
    }
    
  • 当子类隐藏该字段时,访问基类中的字段:

    public class Bar {
        private int id;
        public Bar(int id) {
            this.id = id;
        }
    }
    public class Foo extends Bar {
        public Foo(int id) {
            super(id); // <=====
        }
    }
    
  • 从重写的子类方法中调用基类方法:

    public class Foo extends Bar {
        private int id;
        public int getFooId() {
            return this.id;
        }
        public int getBarId() {
            return super.id; // <=====
        }
    }
    
  • 当子类重写方法时引用基类方法

    public class Bar {
        public void doGreatWork() {
            ...
        }
    }
    public class Foo extends Bar {
        @Override
        public void doGreatWork() {
            ...
            super.doGreatWork(); // <=====
            ...
        }
    }
    

答案 1 :(得分:0)

要在父类和子类都具有相同名称的成员时访问父类的数据成员,以显式调用父类的无参数和参数化构造函数,在子类已覆盖父类的方法时访问父类的方法方法。它可以用来访问父类的变量,调用父类的构造函数,并且可以在方法重写的情况下使用。