6/9

ONLYS2545·2023년 6월 9일
0
post-thumbnail

오버라이딩 조금 더 편하게 하기


자식 클래스의 생성자에서 부모 클래스의 생성자를 호출해서 사용하기

  1. 자식 클래스(질럿,드라군,다크)에 공통되는 변수(name, hp, attack)들을 모두 지우고 3개의 매개변수가 있는 생성자를 만들어준다.

2.부모 클래스(Pu)에 3가지 변수를 정의하고, 3개의 매개변수를 가진
생성자를 정의한다.

3.자식클래스의 생성자에 부모 클래스의 생성자를 호출해서 사용하도록 정의한다.
-->super(name, hp, attack)

위 사진에서 보면 부모클래스에 매개변수가 있는 생성자가 정의되어있다면,
자식 클래스의 생성자에서는 명시적으로 super(매개변수) 형식으로
부모 클래스의 생성자를 호출해주어야한다.
->반면에 부모클래스에 기본 생성자 형태로 정의가 되어있다면, super()
따로 해주지 않아도 된다.


부모 클래스의 메서드를 오버라이딩 할 때 자식 클래스의 메서드의
접근제어자는 부모 클래스의 메서드에 지정된 접근제어자보다 좁을 수 없다.
즉, 오버라이딩된 메서드는 부모 클래스의
메서드의 접근제어자보다 범위가 넓거나 같아야 한다.



인터페이스와 추상클래스의 비교

인터페이스는 추상 클래스와 유사한 개념을 가지고 있지만, 상속과 구현의 차이로 인해 조금 다른 역할을 수행합니다. 추상 클래스는 클래스 간의 상속 관계를 정의하고 공통된 속성과 동작을 제공하는 데 중점을 두며, 인터페이스는 클래스에게 특정 동작을 수행할 수 있는지를 명시하고 다중 구현과 유연성을 제공하는 데 중점을 둡니다.
(인터페이스는 클래스 동작의 명세화)

-->문법이 비슷하고, 추상메서드를 사용한 오버라이딩 기법이 주로 활용된다는 점에서
유사함.

profile
백엔드 교육과정 기록 velog입니다.

0개의 댓글