상속 2

[Java] 인터페이스(interface)

추상클래스를 고도화시킨 문법이며, 반드시 추상메소드와 상수만 선언해야한다. 다른 클래스에서 인터페이스를 지정받을 때에는 implements를 사용한다. 지정받은 클래스는 인터페이스가 갖고있는 추상 메소드들을 반드시 재정의 해야한다. interface 인터페이스명{ 상수 추상메소드 default 메소드 } jdk8 버전 이후부터는 인터페이스에 default 메소드를 선언할 수 있다. 따라서 사실상의 다중상속을 지원하게 된다. 인터페이스 끼리나 다른 클래스와의 메소드 모호성이 발생한다면(이름 중복) 지정, 상속받은 클래스에서 명시적으로 작성(재정의)해 주어 모호성을 해결해줘야한다. public class D extends C implements A, B { @Override public void f() { ..

Back-End/JAVA 2021.05.27

[Java] 상속(inheritance)

1) 상속의 목적 1. 기존에 선언된 클래스의 필드를 다른 클래스에서 사용하고자 할 때 2. 클래스들을 만들다 보니 공통 요소가 보여서 부모로 묶은 후 상속시켜 주어서 사용하고자 할 때 class A{ A의 필드 } class B extends A{ B의 필드 } B b = new B(); b 객체는 실제로는 A의 필드, B의 필드 둘 다 가지고 있다. A : 부모 클래스, 슈퍼 클래스, Car B : 자식 클래스, 서브 클래스, SuperCar 2) 자식클래스 객체화 자식 클래스 생성자 호출시 자식 클래스의 객체는 자식 생성자를 호출하여 객체화를 진행한다. 메모리에 자식 클래스의 필드만 올라갔다면 자식 객체로 부모 클래스에 있는 필드에 절대 접근할 수 없다. 따라서 자식 생성자를 호출하게 되면 제일 처..

Back-End/JAVA 2021.05.27
반응형