You can make anythingby writing
C.S.Lewis
빠르게 살펴보기
클래스와 일부 멤버가 올림푸스 슬롯사이트로 선언되면 추상 클래스입니다. 올림푸스 슬롯사이트 멤버는 클래스 내에서 아무런 구현이 없습니다.
올림푸스 슬롯사이트class Student {
올림푸스 슬롯사이트올림푸스 슬롯사이트 learnKotlin()
올림푸스 슬롯사이트 learnJava() {}
}
추상 메서드는 반드시 재정의(override) 해야 합니다. 일반 멤버 메서드는 재정의 하려면 일반 상속과 마찬가지로 open 키워드를 명시해야 합니다.
올림푸스 슬롯사이트 class Person {open 올림푸스 슬롯사이트 eat() {}abstract 올림푸스 슬롯사이트 sleep()}class Student : Person() {override 올림푸스 슬롯사이트 eat() {super.eat()}override 올림푸스 슬롯사이트 sleep() {}올림푸스 슬롯사이트 study() {}}
[Remind] 상속을 하려면 꼭 open을 선언해주어야 합니다. 왜냐하면 아무 선언이 없으면 코틀린 클래스는 기본적으로 Java의 final 클래스와 같기 때문입니다. 또한 non-올림푸스 슬롯사이트 open 멤버를 올림푸스 슬롯사이트 멤버로 재정의 할 수 있습니다.
openclass Person {
open 올림푸스 슬롯사이트 needToSleep() {}
올림푸스 슬롯사이트 class Student : Person() {
override abstract 올림푸스 슬롯사이트 needToSleep()
abstract 올림푸스 슬롯사이트 learnKotlin()
코틀린의 인터페이스는 Java8과 매우 유사합니다. 올림푸스 슬롯사이트 method 뿐 만 아니라 method의 구현도 가능합니다.
[Tip] 인터페이스라고 하면 모든 method가 올림푸스 슬롯사이트 method인 것이라고 알고 있을 수도 있는데 Java8에서 default 키워드로 method 구현이 가능해졌습니다.
Java
public interface Person {
void needToSleep(); // interface 내에서는 올림푸스 슬롯사이트로 유추
defaultString getName() {
return "Hong";
코틀린
interface Person {
올림푸스 슬롯사이트올림푸스 슬롯사이트 needToSleep()
open올림푸스 슬롯사이트 getName():String = "Hong"
interface에서 구현한 method도 override 할 수 있습니다.추상 클래스와 다르게 올림푸스 슬롯사이트와 open 키워드는 생략이 가능합니다.
올림푸스 슬롯사이트 needToSleep()
올림푸스 슬롯사이트getName():String = "Hong"
class Student : Person {
override 올림푸스 슬롯사이트 needToSleep() {
올림푸스 슬롯사이트 learnKotlin() {
override 올림푸스 슬롯사이트getName()09
return "Tom"
또한 다음과 같이 하나 이상의 interface를 구현할 수 있습니다.
올림푸스 슬롯사이트 getName():String = "Hong"
interface Adult {
올림푸스 슬롯사이트 needToHoliday()
올림푸스 슬롯사이트 getName():String = "Choi"
class Student : Person,Adult{
override 올림푸스 슬롯사이트 needToHoliday() {
474
override 올림푸스 슬롯사이트 getName(): String {