Задачи на ООП в Kotlin. Часть 5
Пусть класс Employee наследует
от класса User из данного
урока.
Переопределите в классе Employee
конструктор родителя, добавив в него
параметр с возрастом и зарплатой.
Сделайте геттеры для возраста и зарплаты.
Дан следующий код:
open class User {
private var age: Int = 0
open fun setAge(age: Int) {
if (age >= 0) {
this.age = age
} else {
println("need age more 0")
}
}
}
class Employee : User() {
override fun setAge(age: Int) {
if (age <= 120) {
if (age >= 0) {
this.age = age
} else {
println("need age more 0")
}
} else {
println("need age less 120")
}
}
}
В классе Employee исправьте
и упростите сеттер возраста, использовав
оригинальный метод родителя.
Дан следующий класс-родитель:
open class User {
private var name: String = ""
private var surn: String = ""
fun setName(name: String) {
this.name = name
}
fun getName(): String {
return this.name
}
fun setSurn(surn: String) {
this.surn = surn
}
fun getSurn(): String {
return this.surn
}
}
Сделайте класс Employee,
который будет наследовать
от этого родителя.
Создайте объект класса Employee
и вызовите унаследованные
сеттеры и геттеры.
В классе Employee сделайте
следующий метод:
fun getFull(): String {
return this.name + " " + this.surn
}
Убедитесь, что код метода приведет к ошибке.
Дан следующий код:
open class User {
private var name: String = ""
open fun setName(name: String) {
this.name = name
}
fun getName(): String {
return this.name
}
}
class Employee : User() {
override fun setName(name: String) {
if (name.length > 0) {
this.name = name // ошибка
}
}
}
В классе потомка переопределяется метод родителя. Исправьте проблемы в этом коде.
Попробуйте в классе Employee
воспользоваться приватным методом
родителя.
Дан следующий код:
open class User {
private var name: String = ""
open fun setName(name: String) {
this.name = name
}
fun getName(): String {
return this.name
}
}
class Employee : User() {
override fun setName(name: String) {
if (name.length > 0) {
this.name = name
}
}
}
Перепишите через защищенное свойство.