⭐접근제어지시자
+ public
default
- private
# protected
# protected
접근제어지시자의 한 종류
자식클래스에서만 접근 가능하게 해준다.
package com.inheritance.animal;
/**
* 4.22 1교시 상속 심화
* xxx.java 파일에는 public을 가진 클래스는 오직 하나만 존재할 수 있다.
*/
//부모 클래스
class Animal {
/*
protected
접근제어지시자의 한 종류
자식클래스에서만 접근 가능하게 된다.
*/
protected String name;
void bark() {
System.out.println(name + " 짖는 중");
}
void eat() {
System.out.println(name + " 먹이 먹는 중");
}
}//end of Animal
//자식 클래스1
class Dog extends Animal {
// void bark() {
// System.out.println(name + " 멍멍 짖는 중");
// }
@Override // 어노테이션 = 주석+힌트 : 부모클래스의 메서드 eat 오버라이드
void eat() {
// super.eat(); 기존 필드.. 필요하다면 사용
// 강아지 전용 코드 작성
System.out.println(name + "사료 먹는 중");
}
}//end of Dog
//자식 클래스2
class Cat extends Animal {
// void bark() {
// System.out.println(name + " 야옹 하는 중");
// }
@Override
void eat() {
// super.eat();
//고양이 먹는 모습 구현
}
}//end of Cat
public class Main1 {
//main
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "바둑이";
dog.eat(); // 부모클래스 메서드 호출
dog.bark(); // 자식클래스 메서드 호출
}//end of main
}//end of class
/**
* 보다 일반적인 개념이 부모클래스가 된다. 동물 <= 개
*/
package com.inheritance.animal;
/**
* 4.22 1교시 상속 심화
*/
public class AnimalTest {
//main
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "멍멍이";
dog.bark();
Cat cat = new Cat();
cat.name = "야옹이";
cat.bark();
}//end of main
}//end of class
⭐상속 실무팁
탑 다운(부모 => 자식)으로 접근하면 문제가 발생할 가능성이 높아진다.
바텀 업(자식 => 부모)으로 접근하는 것이 안전
또한 강한의존성은 문제를 키울 위험이 있다.
따라서 유연하게 묶는 것이 안전
'Java' 카테고리의 다른 글
다형성 Polymorphism, 유연한 코드 작성을 위한 개념 (0) | 2025.04.22 |
---|---|
연관관계 Association, 포함관계와 비슷하지만 느슨한 개념 (0) | 2025.04.22 |
포함관계 Composition, 상속과는 다르다. (1) | 2025.04.21 |
상속과 메서드 오버라이드를 통한 쇼핑몰 회원정보 수정 (0) | 2025.04.21 |
메서드 오버라이드 Method Override, 상속받은 메서드 덮어쓰기 (1) | 2025.04.21 |