본문 바로가기

언어23

[Kotlin 문법 종합] - 오버라이딩, 오버로딩 # 수정하기 1. 오버라이딩 : 상속받은 부모클래스의 정보(프로퍼티)나 행위(메소드) 재설계 = 리디파인...? - 받는 인자의 개수, 타입 같음 - 부모 클래스의 메소드와 같은 이름을 가진 하나의 함수만을 가짐 = 부모 클래스의 메소드와는 다른 메소드가 된 것 (+) 자식 클래스만의 정보, 동작을 만들 수 있음 (+) 재사용성, 일관성 등의 장점 유지 *오버라이딩 단축키 Control + O fun main() { var bird = Bird("새") var chicken = Chicken("닭", 2) bird.fly() chicken.fly() } open class Bird(name:String) { //open 작성 var name: String = "" init { this.name = name } ope.. 2024. 3. 5.
[Kotlin 문법 종합] - 상속 상속 (+) 부모/자식 클래스로 구분해 공통적인 요소들을 한번에 작성 가능 (+) 다형성 구현 (+) 부모 클래스에서 변경한 내용이 자식 클래스에도 적용 ** 코틀린에서는 생략된 final 키워드 때문에 기본적으로 상속이 막혀있음 --> open 키워드로 상속관계를 만들 수 있음 1. 부모클래스에서 생성자를 사용하지 않을 때 fun main() { var bird = Bird() var chicken = Chicken() var sparrow = Sparrow() var pigeon = Pigeon() bird.fly() chicken.fly() sparrow.fly() pigeon.fly() } open class Bird { //open을 부모 클래스 앞에 적어주기 fun fly() { println.. 2024. 3. 5.
[Kotlin 문법 종합] - 생성자, 객체 (#비교 추가하기) @@ 질문하기! 1. 생성자 : 클래스를 실체화할 때 최초로 실행할 로직 작성 (인스턴스를 만드는 과정st... 붕어빵 틀을 가지고 붕어빵 찍어내는) 1) 기본 생성자 : 클래스 이름 옆에 생성자를 위한 인자를 입력받아 초기화 (함수와 유사) class 클래스이름1(temp:String){ var myTemp = temp } fun main(){ val ex1 = 클래스이름1("가") } 2) 명시적 생성자 (1) 주 생성자 Init : { } 초기화 블록 사용하면 객체 실행과 함께 자동실행됨 - 한 가지의 형태로 클래스를 실체화할 때 - 클래스 선언부에 생성자를 명시함 - 매개변수를 직접 넘기지 않음 @@@ 클래스 이름옆 ()에 적는 순서대로 필드의 변수가 채워지는거 맞나?? ->> 이건 다른거... 코드 정리하기 /.. 2024. 3. 5.