TIL #14-1

DuBu·2023년 6월 27일
0

일본IT JAVA 연수과정

목록 보기
23/61
post-thumbnail

Polymorphism

  • 다형성 : 부모 = 자식 , 부모 타입으로 자식 객체 생성을 할 수 있다.
    • 형 변환 필요 없이
  • 한 가지 형태나 타입의 객체가 다양한 방식으로 동작할 수 있는 능력을 의미합니다.

아래가 되지 않는 이유를 메모리 구조도로 설명하시오.

class SmartPhone{...}
class MobilePhone extends SmartPhone{...}

SmartPhone ph2 = new MobilePhone();

  • SmartPhone은 MobilePhone의 자식 클래스로서 SmartPhone class type을 참조하여 선언하면 MobilePhone의 속성을 받아올 수가 없기 때문에 선언이 되지 않는다.

overriding

  • 상속 받은 자식 클래스에서 부모 클래스에서 선언된 메소드를 재정의할 수 있는 것.
//overriding 
//상속 관게에서 똑같은 함수(이름, 리턴타입, 파라미터)로 바디(실행 내용)만 달리하는 것. 
class Cake {
	public void yummy() {
		System.out.println("yummy cake!");
	}
}

class CheeseCake extends Cake {
	public void yummy() {
		System.out.println("yummy cheese cake!");
	}
}

public class Overriding {

	public static void main(String[] args) {

		Cake c1 = new CheeseCake();
		CheeseCake c2 = new CheeseCake();
		
		c1.yummy(); // yummy cheese cake!
		c2.yummy(); // yummy cheese cake!
	}

}
  • 오버라이딩 된 메소드를 인스턴스 외부에서 호출하는 방법은 없다.
  • 그러나 인스턴스 내부에서는 키워드 super를 이용해 호출 가능.
  • 인스턴스 변수는 오버라이딩 되지 않는다. 따라서 참조변수의 형에 따라 접근하는 멤버가 결정된다.

Object Class

  • 모든 클래스는 Object클래스를 상속합니다.
  • 상속하는 클래스가 없다면 컴파일러에 의해 java.lang.Object 클래스를 상속하게 코드가 구성된다.
class MyClass extends OtherClass{..]
  • 위와 같이 다른 클래스를 상속한다면 Object 클래스를 직접 상속하지는 않게 된다.
  • 그러나 간접적으로 (Object 클래스를 상속하는 클래스를 상속하는 형태로) Object 클래스를 상속하게 된다.

0개의 댓글