Skip to content

Instantly share code, notes, and snippets.

@cdcsgit
Created July 3, 2023 14:23
Inheritance
// open class
open class Animal() {
open val name: String = ""
open fun print() {
println("Animal $name")
}
private fun print2() {
println("Animal2 $name")
}
}
class Cat(): Animal() {
override val name: String = "cat"
override fun print() {
println("Cat $name")
}
fun print2() {
println("Cat2 $name")
}
}
fun main(args: Array<String>) {
val cat = Cat()
val animal: Animal = cat
cat.print()
cat.print2()
animal.print()
animal.print2()
}
// ===================================================
// abstract class
abstract class Animal() {
abstract val name: String
abstract fun print()
private fun print2() {
println("Animal2 $name")
}
}
class Cat(): Animal() {
override val name: String = "cat"
override fun print() {
println("Cat $name")
}
fun print2() {
println("Cat2 $name")
}
}
fun main(args: Array<String>) {
val cat = Cat()
val animal: Animal = cat
cat.print()
cat.print2()
animal.print()
// animal.print2()
println("${animal is Cat}")
val animal2 = cat as Animal
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment