kotlin 학습 노트 IV—— 인터페이스
2055 단어 kotlin
상호 작용
Java 8과 유사한 kotlin 인터페이스는 interface 키워드를 사용하여 인터페이스를 정의하여 메소드가 기본 구현을 가질 수 있도록 합니다.
interface MyInterface {
fun bar() // not implemented
fun foo() { //implemented
// Optional method body
println("foo")
}
}
구현 인터페이스
클래스 또는 개체는 하나 이상의 인터페이스를 구현할 수 있습니다.
예시:
interface MyInterface {
fun bar()
fun foo() {
// optional function
println("foo")
}
}
class Child : MyInterface {
override fun bar() {
println("bar")
}
}
인터페이스의 속성
인터페이스의 속성은 추상화만 가능하며 초기화 값은 허용되지 않습니다. 인터페이스는 속성 값을 저장하지 않습니다. 인터페이스를 구현할 때 속성을 다시 작성해야 합니다.
(接口中的属性只能是抽象的,不允许初始化值,接口不会保存属性值,实现接口时,必须重写属性)
예시:
interface MyInterface {
var name:String //name , abstract
fun bar()
fun foo() {
// 可选的方法体
println("foo")
}
}
class Child : MyInterface {
override var name: String = "runoob" //override name
override fun bar() {
println("bar")
}
}
오버라이드 기능
여러 인터페이스를 구현할 때 동일한 메서드가 여러 구현을 상속하는 문제가 발생할 수 있습니다. 예를 들어:
interface A {
fun foo() { print("A") } // implemented
fun bar() // abstract, not implemented
}
interface B {
fun foo() { print("B") } // implemented
fun bar() { print("bar") } // implemented
}
class C : A {
override fun bar() { print("bar") } // override
}
class D : A, B {
override fun foo() {
super<A>.foo()
super<B>.foo()
}
override fun bar() {
super<B>.bar()
}
}
fun main(args: Array<String>) {
val d = D()
d.foo();
d.bar();
}
산출:
ABbar
Reference
이 문제에 관하여(kotlin 학습 노트 IV—— 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yuyalei/kotlin-learning-notes-interface-3if2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
interface MyInterface {
fun bar() // not implemented
fun foo() { //implemented
// Optional method body
println("foo")
}
}
interface MyInterface {
fun bar()
fun foo() {
// optional function
println("foo")
}
}
class Child : MyInterface {
override fun bar() {
println("bar")
}
}
interface MyInterface {
var name:String //name , abstract
fun bar()
fun foo() {
// 可选的方法体
println("foo")
}
}
class Child : MyInterface {
override var name: String = "runoob" //override name
override fun bar() {
println("bar")
}
}
interface A {
fun foo() { print("A") } // implemented
fun bar() // abstract, not implemented
}
interface B {
fun foo() { print("B") } // implemented
fun bar() { print("bar") } // implemented
}
class C : A {
override fun bar() { print("bar") } // override
}
class D : A, B {
override fun foo() {
super<A>.foo()
super<B>.foo()
}
override fun bar() {
super<B>.bar()
}
}
fun main(args: Array<String>) {
val d = D()
d.foo();
d.bar();
}
ABbar
Reference
이 문제에 관하여(kotlin 학습 노트 IV—— 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yuyalei/kotlin-learning-notes-interface-3if2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)