🦲자습/📌문제해결

상속. 자식과 부모 클래스의 관계

우동한그릇 2023. 6. 16. 11:47
반응형


질문했던 내용

* 다형적 변수

 

 

 

A obj;

obj = new A(); True

A에는 A기능이 있다.

 

A obj;

obj = new B(); True

A에는 B기능이 있다.

 

A obj;

obj = new C(); True

A에는 C기능이 있다.

 

A obj;

obj = new D(); True

A에는 D기능이 있다.

 


 

D obj2;

obj = new A(); False

D에는 A기능이 없다.

 

D obj2;

obj = new B(); False

D에는 B기능이 없다.

 

D obj2;

obj = new C(); False

D에는 C기능이 없다.

 

D obj2;

obj = new D(); True

D에는 D기능이 있다.


 

부모는 자식의 클래스를 직접 사용할 수는 없다.

반면 자식은 부모의 클래스를 사용할 수 있다.

 

예를 들어서, 

Calculator에 plus 라는 메소드가 있고

Calculator2에 minus 라는 메소드가 있다면 

 

메인 클래스에서는 Calculator2 의 객체를 생성하고 메소드를 통해

인스턴스 변수에 접근할 수 있다. 

 

하지만 extends를 통해서 Calculator 를 Calculator2의 부모 클래스로 만들면

자식 클래스인 Calculator가 plus라는 메소드를 사용할 수 있다.

 

 

 

예시)  Calculator

package bitcamp.test;

public class Calculator {
  public int plus(int a, int b) {
    return a + b;

  }
}

 

예시)  Calculator2

package bitcamp.test;

public class Calculator2 extends Calculator {
  public int minus(int a, int b) {
    return a - b;
  }
}

 

예시)  test

package bitcamp.test;

public class Test {

  public static void main(String[] args) {
    Calculator2 c2 = new Calculator2();

    System.out.println(c2.minus(100, 200));
    System.out.println(c2.plus(100, 200));
  }
}

 

반응형