상속

부모 클래스에서 중복되는 메소드 가져오기

Chicken의 fly 메소드 사용이 가능해졌다. 상속받으려면 부모클래스에서 open해주어야 한다.

open class Bird {
	fun fly()
}

class Chicken : Bird() {

}

 

override 오버라이딩

부모클래스에서 특정메소드 커스텀해서 쓰고 싶을때 사용.

open class Bird(name) {
	open fun fly() {
    }
}


class Chicken(name: String, age: Int) : Bird(name) {
	override fun fly() {
    }
}

 

overload 오버로드

매개변수의 갯수 또는 자료형만 다른녀석인데 동일한 이름으로 쓰면 안되나 해서 나온 녀석(가능하다.)

class calculator {
	fun add(num1:Int, num2:Int){
    }
    	fun add(num1:DouBle, num2:DouBle){
    }
}

 

Interface 인터페이스 

코틀린은 반드시 한 개의 부모클래스만 상속받을 수 있다.

따라서 근본적인 공통점을 상속 받고, 추가적인 기능들은 인터페이스로 추가한다.

추상 메소드 -> 로직이 존재하지 않고 이름만 존재할 때 추상 메소드라 부른다.

기본적으로 인터페이스는 추상메소드만 작성하는게 원칙이나 최근에는 아니여도 괜찮다는 흐름.

왜 추상메소드로 작성하냐 -> 어차피 자식 클래스에서 오버라이딩해서 작성할거니까

interface 인터페이스이름 {
	fun 메소드이름()
}
class Duck(name: String) : Bird(name), WaterBirdBehavior {
	override fun swim() {
    }
}

 

+ Recent posts