A class which is declared with abstract key word is called abstract class. Abstract class contains both abstract and non abstract methods.
What is abstract?
abstraction is a technique which is hide the implementations and show only declaration to out side.
abstract class Employee {
var sal: Int = 40000
fun displaySal(sal: Int) {
println("My Salary is sal.")
}
abstract fun displayJob(description: String)
}
Here, Employee is abstract class, we cann't create object for the Employee class. It contains displyaSal() non abstract functions and displayJob() abstract function. Note: Abstract classes are always open. No need to explicitly use open keyword to inherit subclasses from them
abstract class Company(name: String) {
init {
println("Employee name is $name.")
}
fun displaySal(sal: Int) {
println("Eployee Salary is $sal.")
}
abstract fun displayJob(description: String)
}
class Employee(name: String): Company(name) {
override fun displayJob(description: String) {
println(description)
}
}
fun main(args: Array) {
val emp = Employee("Chandramouli")
emp.displayJob("Chandramouli is a Team leader")
emp.displaySal(60000)
}
Output Employee name is Chandramouli Chandramouli is a Team leader Eployee Salary is 60000