Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spinner
- 버전일치
- java#왕초보
- git
- 쿠키
- 왕초보
- 스프링
- 스타일보험
- 함수
- Spring
- java
- 게시판
- 답글
- 미니게임
- React
- 시큐어코딩
- kotlin
- 숫자
- 안드로이드
- degit
- Android
- webpack
- 상속
- 오버라이드
- 코틀린
- sub query
- snowpack
- FIle
- SQL
- parcel
Archives
- Today
- Total
YSHUSH
추상클래스(abstract class) 본문
추상클래스는 일반 메소드와 추상 메소드 모두 포함시킬 수 있다.
예제1
Printer class와 myPrinter 두 개의 클래스가 있을때 객체 생성 방법으로 달리 적어보면
abstract class Printer{
abstract fun print()
fun method() = println("Printer method()")
}
class myPrinter:Printer(){
override fun print() {
println("출력합니다")
}
}
이렇게 적을 수 있다.
abstract class Printer{
abstract fun print()
fun method() = println("Printer method()")
}
val myPrinter = object : Printer(){ // 객체 생성
override fun print() {
println("myPrinter print")
}
}
함수 호출부
fun main(args: Array<String>) {
// val prt = myPrinter()
// prt.print()
myPrinter.print()
}
예제2
Vehicle class(abstract)
// 추상클래스 - 일반메소드 + 추상메소드
abstract class Vehicle(val name:String, val color:String, val weight:Double){
// abstract property(추상변수)
abstract var maxSpeed:Double
var year = "2019"
abstract fun start()
abstract fun stop()
fun displaySpecs(){
println("Name:$name, Color:$color, Weight:$weight, Year:$year, Max Speed:$maxSpeed")
}
}
Car class
class Car(name:String, color:String, weight:Double, override var maxSpeed: Double):Vehicle(name, color, weight){
override fun start() {
println("자동차 부아앙~")
}
override fun stop() {
println("자동차 끼이익!")
}
}
오버라이드 될 변수는 생성자 적는 공간에 적어준다
Motorcycle class
class Motorcycle(name:String, color:String, weight:Double, override var maxSpeed: Double):Vehicle(name, color, weight) {
override fun start() {
println("오토바이 부웅~")
}
override fun stop() {
println("오토바이 끽!")
}
}
함수호출부
fun main(args: Array<String>) {
val car = Car("SuperCar", "yellow", 1100.0, 300.0)
val motor = Motorcycle("DreamBike", "black", 187.0, 180.0)
car.year = "2020"
car.start()
car.stop()
motor.start()
motor.stop()
}
상속받은 함수 오버라이드 하는법
1. 상속받는 클래스를 정의하면 빨간선이 뜬다.
2. 빨간선 위에 마우스 포인터 or alt + Enter키 해준다.
3. 이런 창이 뜨면 '멤버구현'을 눌러준다.
4. 오버라이드를 원하는 부분을 선택해준다.
5. 오버라이드 완료!