-
카테고리
-
세부 분야
취업 · 이직
-
해결 여부
미해결
상속과 추상화의 관계
23.10.23 05:23 작성 조회수 194
0
안녕하세요! 좋은 강의 감사합니다.
추상화를 공부해보니 상속과 추상화의 관계에 대해서 궁금해져서 질문 드립니다.
모든 상속은 데이터 추상화인가요?
제가 생각해봤을 땐
부모 클래스를 상속받는 자식 클래스들의 관계를 따져봤을 때 공통점이 있다면 추상화 O, 공통점이 없다면 추상화 X
인 것 같은데...
상속인데 추상화가 아닌 예시가 떠오르질 않아서 맞는지 모르겠습니다.
답변을 작성해보세요.
1
큰돌
지식공유자2023.10.23
안녕하세요 햄스터님 ㅎㅎ
부모 클래스를 상속받는 자식 클래스들의 관계를 따져봤을 때 공통점이 있다면 추상화 O, 공통점이 없다면 추상화 X
>> 네 맞습니다.
class Parent{
void func1() {
System.out.println("This is the parent class");
}
}
class Child extends Parent{
void func2() {
System.out.println("This is the child class");
}
}
class example{
public static void main(String args[]) {
Child ch = new Child();
ch.func1();
ch.func2();
}
}
이런 코드도 상속인데 사실 이건 추상화로 볼 수 없겠죠?
상속 != 추상화입니다.
다만 상속을 할 때 보통은 부모계층을 추상화해서 많이 코드를 작성합니다.
// 기본 클래스
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public void speak() {
System.out.println(name + " is making a sound.");
}
}
// Animal 클래스를 상속받는 Dog 하위 클래스
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(super.getName() + " says Woof!");
}
}
// Animal 클래스를 상속받는 Cat 하위 클래스
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(super.getName() + " says Meow!");
}
}
개, 고양이 -> 동물
이런식으로요. ㅎㅎ
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
답변 1