>  기사  >  Java  >  02.Java 기초 - 상속

02.Java 기초 - 상속

黄舟
黄舟원래의
2017-02-27 10:09:291192검색

기본 개념

  • 상속의 개념: 클래스 유형을 기반으로 새 클래스 생성 기존 클래스, 기존 클래스의 형태를 변경하지 않고 이러한 접근 방식을 상속이라고 합니다.

  • 상속의 역할: 먼저 클래스 P를 만든 후 이제 새 클래스 S를 만들어야 하는데 기능은 P와 비슷합니다. 이때 게으르고 S를 다시 작성하고 싶지 않다면 상속을 통해 할 수 있습니다.

  • 상속 관계: 상속 관계는 부모 클래스(기본 클래스)와 자식 클래스(파생 클래스)로 구분됩니다. 상위 클래스는 상속된 개체(예: P)이고 하위 클래스는 구현된 상속 개체(예: S)입니다.

  • 상속 방법: 클래스 상속은 단일 상속입니다. 즉, S가 P를 상속한 후에는 P2를 상속할 수 없습니다.

  • 상속의 특징 : 하위 클래스는 상속을 통해 상위 클래스의 모든 필드(변수)와 메서드를 자동으로 얻습니다.

  • 상속 구현: 상속은 Java에서 extend 키워드를 통해 구현됩니다.

class Parent {
}

class Son extends Parent {
}

IS-A 관계

Java의 상속 관계는 IS-A 관계입니다.

IS-A 관계를 이해하려면 위의 내용을 참고하세요. S는 P를 상속받으며 S는 P라고 말할 수 있습니다.

상속관계에서는 후임자가 후임자를 완전히 대체할 수 있지만 그 반대는 불가능합니다. 한마디로 말하면, "사람을 동물처럼 대할 수는 있지만 동물을 사람처럼 대할 수는 없습니다".


생성자와 상속

클래스는 생성자를 호출하여 초기화됩니다. 상속의 경우 하위 클래스와 상위 클래스의 생성자는 다음과 같은 특성을 갖습니다.

  • 하위 클래스가 상위 클래스에서 상속할 때 상위 클래스의 생성자가 암시적으로 생성된 경우 장치 수동으로 호출할 필요는 없습니다.

  • 하위 클래스가 상위 클래스를 상속할 때 상위 클래스의 생성자가 명시적 생성자인 경우 수동으로 호출해야 합니다.

  • 하위 클래스가 상위 클래스를 상속하는 경우 생성자 호출 순서는 항상 상위 클래스에서 아래로 이루어집니다.

예를 통해 살펴보겠습니다.

class Parent {    // 无参构造器,即隐式构造器。
    public Parent() {
        System.out.println("initializing Parent");
    }
}

class Son extends Parent {    // 带参构造器,属显式构造器
    public Son(String name) {        // 关键 -> 由于父类是隐式构造器,这里可以不调用。
        System.out.println("initializing "+name);
    }
}

class Grandson extends Son {    public Grandson() {        // 关键 -> 父类是显式构造函数,必须手动调用
        super("son");
        System.out.println("initializing Grandson");
    }
}public class Test {
    public static void main(String[] args) {
        Grandson grandson = new Grandson();        // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下:
        // initializing Parent
        // initializing Son
        // initializing Grandson
    }
}

기본 개념

  • 상속 개념 : 기존 클래스의 형태를 변경하지 않고 기존 클래스의 유형을 기반으로 새 클래스를 생성하는 방법을 상속이라고 합니다.

  • 상속의 역할: 먼저 클래스 P를 만든 후 이제 새 클래스 S를 만들어야 하는데 기능은 P와 비슷합니다. 이때 게으르고 S를 다시 작성하고 싶지 않다면 상속을 통해 할 수 있습니다.

  • 상속 관계: 상속 관계는 부모 클래스(기본 클래스)와 자식 클래스(파생 클래스)로 구분됩니다. 상위 클래스는 상속된 개체(예: P)이고 하위 클래스는 구현된 상속 개체(예: S)입니다.

  • 상속 방법: 클래스 상속은 단일 상속입니다. 즉, S가 P를 상속한 후에는 P2를 상속할 수 없습니다.

  • 상속의 특징 : 하위 클래스는 상속을 통해 상위 클래스의 모든 필드(변수)와 메서드를 자동으로 얻습니다.

  • 상속 구현: 상속은 Java에서 extend 키워드를 통해 구현됩니다.

class Parent {
}

class Son extends Parent {
}

IS-A 관계

Java의 상속 관계는 IS-A 관계입니다.

IS-A 관계를 이해하려면 위의 내용을 참고하세요. S는 P를 상속받으며 S는 P라고 말할 수 있습니다.

상속관계에서는 후임자가 후임자를 완전히 대체할 수 있지만 그 반대는 불가능합니다. 한마디로 말하면, "사람을 동물처럼 대할 수는 있지만 동물을 사람처럼 대할 수는 없습니다".


생성자와 상속

클래스는 생성자를 호출하여 초기화됩니다. 상속의 경우 하위 클래스와 상위 클래스의 생성자는 다음과 같은 특성을 갖습니다.

  • 하위 클래스가 상위 클래스에서 상속할 때 상위 클래스의 생성자가 암시적으로 생성된 경우 장치 수동으로 호출할 필요는 없습니다.

  • 하위 클래스가 상위 클래스를 상속할 때 상위 클래스의 생성자가 명시적 생성자인 경우 수동으로 호출해야 합니다.

  • 하위 클래스가 상위 클래스를 상속하는 경우 생성자 호출 순서는 항상 상위 클래스에서 아래로 이루어집니다.

예시를 통해 살펴보겠습니다.

class Parent {    // 无参构造器,即隐式构造器。
    public Parent() {
        System.out.println("initializing Parent");
    }
}

class Son extends Parent {    // 带参构造器,属显式构造器
    public Son(String name) {        // 关键 -> 由于父类是隐式构造器,这里可以不调用。
        System.out.println("initializing "+name);
    }
}

class Grandson extends Son {    public Grandson() {        // 关键 -> 父类是显式构造函数,必须手动调用
        super("son");
        System.out.println("initializing Grandson");
    }
}public class Test {
    public static void main(String[] args) {
        Grandson grandson = new Grandson();        // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下:
        // initializing Parent
        // initializing Son
        // initializing Grandson
    }
}

위 내용은 02.Java 기본 - 상속 내용입니다. 자세한 내용은 PHP를 참고해주세요. 중국사이트(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.