상속 정보



설명 할 때 항상 읽으므로 요약

상속이란?



공통점과 차이점을 체계적으로 분리하여 정리하는 것
  • 클래스의 공통 부분을 부모 클래스로 결합하는 방법
  • 상위 클래스에 공통적 인 특성을 정의하고 하위 클래스에 고유 한 특성을 정의하는 것
  • 코드 중복을 제거하고 다목적 부품을 만드는 메커니즘 중 하나
  • 객체 지향 삼대 요소 중 하나
  • 전체 집합과 하위 집합의 관계를 나타냅니다 (집합 이론에서 말하는 슈퍼 세트와 서브 세트).

    특징



    개념적 측면 (현실 세계)



    분류 체계를 설명할 수 있다
  • 예를 들어 "동물"과 "인간"과 "새"
  • "동물"(상위)의 "새"
  • "인간"(하위)은 "동물"중 하나
  • "새"는 (하위)는 "동물"중 하나


  • 기술적 측면 (프로그래밍)



    상속을 선언하는 것만으로 부모 클래스의 변수와 메소드를 모두 정의한 것이 된다
  • 슈퍼 클래스와 서브 클래스 각각의 메소드로서 성립한다
  • 예를 들어 "Animal", "human", "bird"
  • 「동물」은 「인간」도 「새」도 「먹는다」하지만 「인간은 걷다」하고 「새는 날다」
  • 「동물」은 「인간」도 「새」도 「먹는다」지만, 「인간은 날지 않는다」하고, 「새는 걸을 수 있고, 한다」(이번은 걸을 수 없다고 한다)
  • 공통의 성격만 정리해 같은 클래스에 정의한다


  • 프로그래밍 기술에서 "추상"을 이용한 경우



    Animal.java
    public abstract class Animal {
        public void eat() {
            System.out.println("ぱくぱく");
        }
    }
    

    Human.java
    public class Human extends Animal {
        public void walk() {
            System.out.println("てくてく");
        }
    }
    

    Bird.java
    public class Bird extends Animal {
        public void fly() {
            System.out.println("ばさばさ");
        }
    }
    

    Main.java
    public class Main {
        public static void main(String[] args) {
            Bird bird = new Bird();
            bird.eat();
            bird.fly();
    
            Bird human = new human();
            human.eat();
            human.walk();
        }
    }
    

    포인트


  • 자식 클래스 내에서 상속을 선언 (extends)하고 있으므로 자식 클래스를 인스턴스 생성 (new)하면 자식 클래스에 메서드가 없어도 상위 클래스의 메서드를 사용할 수 있습니다 (eat 메서드를 호출할 수 있음)
  • 상속은 폴리모피즘을 실현하는 기능의 하나이기도 하다

  • 관련 기사



    객체 지향으로 왜 만드는지 정리

    책 정보



    히라자와 장 (저) 오브젝트 지향으로 왜 만드는지 제 2 판
    htps : // 아 mz 응. 및 / 2VSr

    잡감



    그러고 보니 새는 걸을 수 있다. 가끔 날 수 없는 새도 있다.

    이런 것도 현실 세계에 맞추려고 하면 어느 것이 되므로, 어디까지나 사양적으로 문제 없다고 하는 것으로.
    이번 「기술적 측면」의 부분으로 채우고 싶은 「요건」은 「부모의 메소드를 아이 생성 후에 부를 수 있는 것의 설명」이므로 「새」가 걷지 않는 것은 사양적으로 문제 없다

    좋은 웹페이지 즐겨찾기