网站建设进度计划表,做视频网站视频存放在哪里,wordpress获取文章所有图片,石家庄站列车时刻表super 是 Java 中的一个关键字#xff0c;它在继承的上下文中特别有用。super 引用了当前对象的直接父类#xff0c;它可以用来访问父类中的属性、方法和构造函数。以下是 super 的几个主要用途#xff1a;
1. 调用父类的构造函数
在子类的构造函数中#xff0c;你可以使…super 是 Java 中的一个关键字它在继承的上下文中特别有用。super 引用了当前对象的直接父类它可以用来访问父类中的属性、方法和构造函数。以下是 super 的几个主要用途
1. 调用父类的构造函数
在子类的构造函数中你可以使用 super 来调用父类的构造函数。这通常在子类构造函数的第一行完成以确保父类的属性被正确初始化。
class Parent {Parent(String name) {System.out.println(Parent constructor called with name: name);}
}class Child extends Parent {Child(String name, int age) {super(name); // 调用父类的构造函数System.out.println(Child constructor called with age: age);}
}public class Main {public static void main(String[] args) {Child child new Child(Alice, 10);}
}在这个例子中Child 类的构造函数通过 super(name) 调用了 Parent 类的构造函数并传递了一个 name 参数。
2. 访问父类的成员
在子类中如果你想要引用父类的属性或方法可以使用 super 关键字。
class Parent {String name Parent;void printName() {System.out.println(Name in Parent: name);}
}class Child extends Parent {String name Child;void printName() {super.printName(); // 调用父类的printName方法}
}public class Main {public static void main(String[] args) {Child child new Child();child.printName(); // 输出 Name in Parent: Parent}
}在这个例子中尽管 Child 类有自己的 name 属性和 printName 方法但它通过 super.printName() 调用了父类的 printName 方法来打印父类的 name 属性。
3. 方法重写
当你在子类中重写父类的方法时可以使用 super 来调用父类的方法。
class Parent {void doSomething() {System.out.println(Doing something in Parent class);}
}class Child extends Parent {Overridevoid doSomething() {super.doSomething(); // 调用父类的doSomething方法System.out.println(Doing something more in Child class);}
}public class Main {public static void main(String[] args) {Child child new Child();child.doSomething(); // 首先调用父类的方法然后调用子类的方法}
}在这个例子中Child 类重写了 doSomething 方法并在方法内部首先调用了父类的 doSomething 方法。
4. 阻止继承
使用 super 关键字结合 Object 类的构造函数可以阻止其他类继承某个类。
class FinalClass extends Object {public FinalClass() {super(); // 调用Object类的构造函数}
}final class TrulyFinalClass {// 这个类不能被继承因为它没有构造函数且Object类是final的
}在这个例子中FinalClass 可以被继承因为它有一个可访问的构造函数。而 TrulyFinalClass 不能被继承因为 Object 类是 final 的且没有提供其他构造函数。 super注意点
1.super调用父类的构造方法必须在构造方法的第一个 2. super必须只能出现在子类的方法或者构造方法中 3. super和this不能同时调用构造方法。
VS this 代表的对象不同this本身调用这个对象super 代表父类对象的应用前提this没有继承也可以使用super只能在继承条件下才可以使用构造方法this()本类的构造super()父类的构造总结
super 是 Java 中一个非常有用的关键字它在继承结构中提供了一种访问父类成员的方式。正确使用 super 可以帮助你更好地组织代码实现父类和子类之间的清晰分离和协作。