> Java > java지도 시간 > java에서 super()는 무엇을 의미하나요?

java에서 super()는 무엇을 의미하나요?

下次还敢
풀어 주다: 2024-04-27 00:15:25
원래의
1117명이 탐색했습니다.

super() 키워드는 Java 하위 클래스 생성자에서 상위 클래스의 생성자를 호출하여 상위 클래스 인스턴스 변수가 올바르게 초기화되었는지 확인하는 데 사용됩니다. 구문은 super()(매개변수 없음) 또는 super(매개변수)입니다.

java에서 super()는 무엇을 의미하나요?

super(): Java의 상위 클래스 생성자 호출

Java에서는 super() 키워드를 사용하여 상위 클래스의 생성자를 호출합니다. 이는 하위 클래스 생성자의 첫 번째 문이며 상위 클래스의 인스턴스 변수를 초기화하는 역할을 담당합니다. super() 关键字用于调用父类的构造函数。它是子类构造函数中的第一个语句,负责初始化父类的实例变量。

为什么要调用父类构造函数?

当子类实例化时,Java 首先调用父类的构造函数。这确保了父类的实例变量正确初始化。如果子类未明确调用父类构造函数,则 Java 将自动调用无参构造函数。但建议显式调用父类构造函数,因为它可以明确指定要调用的构造函数,并避免意外行为。

语法:

super() 关键字可以带有或不带参数:

  • 无参数:调用父类的无参构造函数。
  • 带参数:调用父类的带参构造函数,其中参数与父类构造函数中的参数对应。

示例:

<code class="java">// 父类 Animal
class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }
}

// 子类 Dog
class Dog extends Animal {
    private int age;

    public Dog(String name, int age) {
        // 调用父类的带参构造函数
        super(name);
        this.age = age;
    }
}</code>
로그인 후 복사

在上面的示例中,Dog 类的构造函数中调用了 super(name),它将 name 参数传递给父类 Animal 的带参构造函数。这确保了 Animal 类的 name 实例变量正确初始化。

注意事项:

  • super()
  • 부모 클래스 생성자를 호출해야 하는 이유는 무엇인가요?
  • 하위 클래스가 인스턴스화되면 Java는 먼저 상위 클래스의 생성자를 호출합니다. 이렇게 하면 부모 클래스의 인스턴스 변수가 올바르게 초기화됩니다. 하위 클래스가 상위 클래스 생성자를 명시적으로 호출하지 않으면 Java는 자동으로 인수 없는 생성자를 호출합니다. 그러나 호출할 생성자를 명확하게 지정하고 예기치 않은 동작을 방지하려면 부모 클래스 생성자를 명시적으로 호출하는 것이 좋습니다.
🎜🎜구문: ​​🎜🎜🎜super() 키워드에는 매개변수가 있거나 없을 수 있습니다. 🎜
    🎜🎜매개변수 없음: 🎜상위 클래스의 매개변수 없는 생성자를 호출합니다. 🎜🎜🎜매개변수 포함: 🎜부모 클래스의 매개변수화된 생성자를 호출합니다. 여기서 매개변수는 부모 클래스 생성자의 매개변수에 해당합니다. 🎜🎜🎜🎜예: 🎜🎜rrreee🎜위의 예에서 super(name)Dog 클래스의 생성자에서 호출되며, name 매개변수는 상위 클래스 <code>Animal의 매개변수화된 생성자에 전달됩니다. 이렇게 하면 Animal 클래스의 name 인스턴스 변수가 올바르게 초기화됩니다. 🎜🎜🎜참고: 🎜🎜
      🎜super()는 하위 클래스 생성자의 첫 번째 문이어야 합니다. 🎜🎜부모 클래스에 매개변수 없는 생성자가 없는 경우 하위 클래스는 부모 클래스의 매개변수화된 생성자를 명시적으로 호출해야 합니다. 🎜🎜하위 클래스 생성자가 상위 클래스 생성자를 호출하지 않으면 Java는 자동으로 상위 클래스의 인수 없는 생성자를 호출합니다. 🎜🎜

위 내용은 java에서 super()는 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿