티스토리 뷰
자바 상속의 특징
상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것
상속을 사용하면 적은 양의 코드로 새로운 클래스를 생성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에
코드의 추가 및 변경이 용이하다.
super 키워드
super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는 데 사용되는 참조변수이다.

다음과 같이 동일한 이름의 멤버변수가 있다면 super를 사용해서 구분해준다.
매소드 오버라이딩
자바에서는 메서드 오버라이딩을 통해 상속받은 부모 클래스의 메서드를 자식 클래스에서 직접 재정의할 수 있다.
class Parent {
void display() { System.out.println("부모 클래스의 display() 메소드입니다."); }
}
class Child extends Parent {
void display() { System.out.println("자식 클래스의 display() 메소드입니다."); }
}
public class Inheritance05 {
public static void main(String[] args) {
Parent pa = new Parent();
pa.display();
Child ch = new Child();
ch.display();
Parent pc = new Child();
pc.display(); // Child cp = new Parent();
}
}
추상 클래스
추상 클래스는 직접 인스턴스를 생성할 수없고 상속을 통한 자손클래스에 의해서만 완성될 수 있다.
클래스 = 설계도
추상 클래스 = 미완성 설계도
abstract class Animal { abstract void cry(); }
class Cat extends Animal { void cry() { System.out.println("냐옹냐옹!"); } }
class Dog extends Animal { void cry() { System.out.println("멍멍!"); } }
public class Polymorphism02 {
public static void main(String[] args) {
// Animal a = new Animal(); // 추상 클래스는 인스턴스를 생성할 수 없음.
Cat c = new Cat();
Dog d = new Dog();
c.cry();
d.cry();
}
}
추상 메서드의 사용 목적
자바에서 추상 메서드를 선언하여 사용하는 목적은 추상 메서드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메서드를 구현하도록 하기 위함이다.
final 키워드
final은 "마지막", "변경될 수 없는"의 의미를 가지고 있다.
클래스에 사용하면 자손 클래스를 사용할 수 없고, 메서드에 사용하면 오버라이딩을 할 수 없고,
변수에 사용하면 값을 변경할 수 없다.
object 키워드
자바의 클래스를 선언할 때 extends를 이용해 다른 클래스를 상속받지 않는다면 자동으로 object class를 상속받게 된다.
따라서 모든 클래스는 object클래스의 자손이 된다. 즉, object클래스는 자바의 최상위 클래스이다.

'개발 > Java' 카테고리의 다른 글
| [Java] 인터페이스 (0) | 2023.06.15 |
|---|---|
| [Java] 패키지 (0) | 2023.06.14 |
| [Java] 클래스 (0) | 2023.06.07 |
| [Java] 제어문 (0) | 2023.06.05 |
| [Java] 자바 데이터 타입, 변수 그리고 배열 (0) | 2023.06.02 |
댓글