package abstractclass;
abstract class Animal {
// private String name;
protected String name; // 상속 관계의 자식만 접근 허용
public Animal() {
this("미입력");
}
public Animal(String name) {
this.name = name;
}
public String getName() { // private 타입의 field 를 접근하기 위해 getter 사용
return this.name;
}
// abstract method
public abstract void play();
}
class Cat extends Animal {
public Cat (String name) { // 매개변수 1개 생성자를 실행해서 name 값 설정
super(name);
}
@Override
public void play() {
// System.out.println(super.getName() + "는 낚싯대 놀이 중 입니다.");
System.out.println(super.name + "는 낚싯대 놀이 중 입니다.");
}
}
class Dog extends Animal {
public Dog (String name) { // 매개변수 1개 생성자를 실행해서 name 값 설정
super(name);
}
@Override
public void play() {
// System.out.println(super.getName() + "는 터그 놀이 중 입니다.");
System.out.println(super.name + "는 터그 놀이 중 입니다."); }
}
public class Quiz01 {
public static void animalPlay(Animal animal) {
animal.play();
}
public static void main(String[] args) {
Cat bear = new Cat("베어");
Dog roy = new Dog("로이");
animalPlay(bear); // 베어는 낚싯대 놀이 중 입니다.
animalPlay(roy); // 로이는 터그 놀이 중 입니다.
}
}
# 실행 결과
재호는 낚싯대 놀이 중 입니다.
로이는 터그 놀이 중 입니다.
'Language > JAVA' 카테고리의 다른 글
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 일반 클래스에서 추상 클래스로 변경하기 (0) | 2024.04.19 |
---|---|
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 상속 받은 메소드 호출 (0) | 2024.04.19 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 추상 클래스와 추상 메소드 정의하기 (0) | 2024.04.18 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 상속 문제 (0) | 2024.04.17 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 다형성으로 구현된 객체의 메소드 호출하기 (0) | 2024.04.17 |