본문 바로가기

추상클래스

(2)
[Kotlin] 오버라이딩, 추상화, 인터페이스 오버라이딩 상속 시에는 기본적으로 수퍼클래스에 있는 함수와 같은 이름과 형태를 가진 함수는 서브클래스에서 만들 수 없다. 하지만 수퍼클래스에서 허용만 한다면(open 키워드 사용) 오버라이딩이라는 방법으로 서브클래스에서 같은 이름과 형태로 된 함수의 내용을 다시 구현(override 키워드 사용)할 수 있다. fun main(){ var t = Tiger() t.eat() // 고기를 먹습니다 } open class Animal{ open fun eat(){ println("음식을 먹습니다") } } class Tiger : Animal(){ override fun eat(){ println("고기를 먹습니다") } } 추상화 오버라이딩과 다르게 수퍼클래스에서는 함수의 구체적인 구현은 없고 단지 Anim..
[C++] OOP 다형성 - 추상 클래스(abstract class) '추상'이란 단어의 뜻은 '구체성이 없어 뜻이 분명하지 않다'이다. 따라서 추상 클래스는 기능이 구체적으로 작성되지 않은 클래스라는 뜻으로 받아들일 수 있다. C++에서 추상 클래스는 하나 이상의 순수 가상 함수(pure virtual function)를 지닌 클래스를 말한다. 이런 추상 클래스를 이용하면 다형성을 가진 다양한 함수들을 정의할 수 있다. 제작하고자 하는 객체들이 반드시 지닌 기능을 추상 클래스의 순수 가상 함수로 작성해 놓으면, 해당 클래스를 이용하여 만든 자식 클래스에서는 이 가상 함수를 재정의하여 사용하면 된다. 즉, 추상 클래스는 객체를 생성하기 위한 목적의 클래스가 아니라 상속을 통해 다양한 클래스의 생성을 위한 인터페이스라고 생각하면 된다. (Java의 경우 상속을 extends..