inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

Q. 추상화란 무엇인가요? ★★★

상속과 추상화의 관계

336

섬세한 햄스터

작성한 질문수 10

0

안녕하세요! 좋은 강의 감사합니다.

추상화를 공부해보니 상속과 추상화의 관계에 대해서 궁금해져서 질문 드립니다.

모든 상속은 데이터 추상화인가요?

제가 생각해봤을 땐

부모 클래스를 상속받는 자식 클래스들의 관계를 따져봤을 때 공통점이 있다면 추상화 O, 공통점이 없다면 추상화 X

인 것 같은데...

상속인데 추상화가 아닌 예시가 떠오르질 않아서 맞는지 모르겠습니다.

면접 운영체제 기술면접

답변 1

1

큰돌

안녕하세요 햄스터님 ㅎㅎ

부모 클래스를 상속받는 자식 클래스들의 관계를 따져봤을 때 공통점이 있다면 추상화 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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


 

0

섬세한 햄스터

감사합니다!!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

53

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

91

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

103

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

78

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

201

1

회선과 대역폭의 관계

0

62

2

44강 질문

0

95

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

67

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

107

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

72

2