super修饰属性 ,方法
在Java中,super 是一个关键字,用于访问父类中的属性和方法。使用 super 关键字可以在子类中访问父类中的属性和方法,包括被子类重写的父类方法。
在子类中,如果要访问父类中的属性,可以使用 super 关键字来引用父类中的属性。例如,在子类中重写父类的构造方法时,可以使用 super 关键字来调用父类的构造方法来初始化父类的属性。例如:
class Animal { private String name; public Animal(String name) { this.name = name;} public String getName() { return name;}}class Dog extends Animal { private int age; public Dog(String name, int age) { super(name); this.age = age;} public void printInfo() { System.out.println("名字:" + super.getName() + ",年龄:" + age);}}public class Test { public static void main(String[] args) { Dog dog = new Dog("旺财", 3);dog.printInfo(); }}
在这个示例中,Animal类中定义了一个私有属性name,而Dog类继承了Animal类并定义了一个私有属性age。在Dog类的构造方法中,使用 super 关键字调用父类的构造方法来初始化父类的属性name。在Dog类中的printInfo()方法中,使用 super 关键字来访问父类中的getName()方法,输出名字和年龄。在main()方法中,创建一个Dog对象并调用这个对象的printInfo()方法,输出名字和年龄。
在子类中,如果要调用父类中的方法,可以使用 super 关键字来调用父类中的方法。例如,在子类中重写父类的方法时,可以使用 super 关键字来调用父类中的方法。例如:
class Animal { public void move() { System.out.println("动物在移动");}}class Dog extends Animal { @Override public void move() { super.move(); // 调用父类中的move()方法 System.out.println("狗在奔跑");}}public class Test { public static void main(String[] args) { Animal animal = new Dog();animal.move(); }}
在这个示例中,Animal类中定义了一个move()方法,而Dog类继承了Animal类并重写了这个方法。在Dog类中的move()方法中,使用 super 关键字来调用父类中的move()方法,然后输出“狗在奔跑”。在main()方法中,创建一个Dog对象并调用这个对象的move()方法。由于重写了父类中的move()方法,因此首先输出“动物在移动”,然后输出“狗在奔跑”。