admin 管理员组

文章数量: 887021


2024年1月17日发(作者:被cancel)

java的继承super用法

在Java中,继承是面向对象编程的一个重要概念。它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。在继承关系中,子类继承了父类的特性,并且可以添加自己的特性或覆盖父类的方法。

当子类继承父类时,super关键字经常被用来引用父类的属性和方法。super关键字有多种用法,下面将详细介绍每一种用法。

1. super( 构造器

在子类的构造器中,使用super(来调用父类的构造器。这是因为子类继承了父类的属性,需要通过调用父类的构造函数来初始化这些属性。super(的调用必须放在子类构造器的第一行。如果没有显式地调用super(,那么Java会自动隐式调用父类的默认构造函数。

2. super 关键字引用父类属性

在子类中,可以使用super关键字来引用父类的属性。这常常用于解决子类和父类有同名字段的冲突问题。通过super关键字,可以明确地指定引用的是父类的属性。

```

public class Animal

String name;

public Animal(String name)

= name;

}

public class Dog extends Animal

int age;

public Dog(String name, int age)

super(name); //调用父类的构造器来初始化name属性

= age;

}

public void displa

n( + " is " + age + " years

old."); //引用父类的name属性

}

public static void main(String[] args)

Dog dog = new Dog("Fido", 5);

y(; //输出 Fido is 5 years old.

}

```

3. super 关键字引用父类方法

子类可以通过super关键字来引用父类的方法。这可以用于在子类中对父类方法的功能进行扩展或重写。通过使用super关键字,可以在子类中调用父类的方法。

```

public class Shape

public void displa

n("This is a shape.");

}

public class Circle extends Shape

public void displa

y(; //调用父类的display方法

n("This is a circle.");

}

public static void main(String[] args)

Circle circle = new Circle(;

y(;

}

```

输出结果:

```

This is a shape.

This is a circle.

```

通过y(语句,子类Circle首先调用父类Shape的display方法,然后再添加自己的功能。

4. super 关键字调用父类的静态方法、变量和构造器

super关键字不仅可以引用父类的实例方法和属性,还可以引用父类的静态方法和变量。在子类中通过super关键字引用父类的静态方法和变量与调用父类的实例方法和属性类似。同样,调用父类的构造器也可以使用super关键字。

```

public class Parent

public static int x = 10;

public static void displa

n("y(");

}

public class Child extends Parent

public static int x = 20;

public static void displa

n("y(");

}

public void print

n(super.x); //引用父类的x变量

y(; //调用父类的display方法

}

public static void main(String[] args)

Child child = new Child(;

(; //输出 10 n y

}

```

在Child类中,通过super关键字引用父类的静态变量和静态方法。与实例方法不同,静态方法和变量不受对象的影响,所以super关键字指的是父类本身。

总结:

在Java中,super关键字用于在子类中引用父类的属性和方法。它有多种用法,包括调用父类的构造器,引用父类的实例方法和属性,调用父类的静态方法和变量等。super关键字在继承中起到了重要的作用,它使得子类能够访问和扩展父类的功能,从而实现了代码的复用和扩展性的提高。


本文标签: 父类 子类 方法