-
UYOU
关键字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(); // <===== ... }}当子类重写方法时引用基类方法public class MultiBar extends Bar { public void doGreatWork() { list.stream().forEach(super::doGreatWork); // <===== }}
-
慕村225694
静态变量/方法使用什么内存?如果我们想访问或调用该方法,我们不需要创建对象,只需在编写方法时使用 static 关键字,如 ->> public static show()。当我们使用 static 关键字时,该类将被调用并执行该方法。static 意味着我们不能改变值,我们也可以对变量使用 static 关键字,一旦我们使用 static 关键字就意味着我们不能经常改变值。例子:public class static example { public static void main(String[] args) { xyz.i = 10; xyz.show(); } } class xyz { static int i; public static void show() { System.out.println("Stackoverflow example by Me"); } }
-
慕尼黑5688855
关键字“Super”是否仅在 Method overriding 的情况下才有意义?当我们要调用父类的方法时,子类的方法将在方法重载中执行,因为父类和子类将具有相同的方法名。这就是方法重载发生的原因。为了克服这个问题,我们使用 super 关键字来调用父类方法,即使父类和子类同名。我们可以轻松调用并执行父类方法例子: class A { int i; public void show(){ System.out.println("A"); }}class B extends A { int i; public void show(){ super.show() System.out.println("B"); }}public class overriding example { public static void main(String[]args) { B obj1 = new B(); obj1.show(); }}
-
慕斯709654
当父类和子类都有同名成员时访问父类的数据成员,显式调用父类的无参数参数化构造函数,当子类重写该方法时访问父类的方法。它可用于访问父类的变量,调用父类的构造函数,并可用于方法覆盖的情况。