Kotlin 零基础学习 封装、继承、抽象、多态
2019-01-16 本文已影响44人
__素颜__
封装:就是隐藏内部实现的细节
继承:一个对象直接使用另一个对象的属性和方法
抽象:不实现具体方法交由子类实现
多态:同种功能不同的表现形态
一.封装
class Girl(var eyes: Int, var mouth: Int) {
fun smile() {
println("姑娘会笑");
}
fun cry() {
println("姑娘会哭");
}
fun crazy() {
println("姑娘会作妖");
}
private fun eat(){
println("姑娘会吃饭");
}
}
类里面的eat方法被设置成了私有外部无法调用,隐藏了实现的细节
二.继承
open class father{
var value:String="性格内向";
open fun action(){
println("公共场合大声说话")
}
}
class son:father(){
override fun action() {
super.action()
println("儿子很乖")
}
}
Kotlin的继承写法和java不一样
1.kotlin继承是“:类名()”,而java使用“ extends”关键字继承。
2.父类能被继承必须用open修饰,java则不用。
3.父类的方法能被重写必须用open修饰,java则不用。
三.抽象
abstract class Human(var name: String) {
abstract fun eat()
}
class Man(var manName: String) : Human(manName) {
override fun eat() {
println("男人大口大口的吃饭")
}
}
class Woman(var womanName: String) : Human(womanName) {
override fun eat() {
println("女人小口小口的吃饭")
}
}
抽象类Human被Man和Woman所继承,分别重写了eat方法,我们看到抽象类继承和普通类继承有点差别。
1.抽象类被继承不用open修饰
2.抽象方法被重新不用open修饰
可能抽象本来就需要子类去继承和重写,所以就不多此一举用oepn修饰了
四.多态
三中的Human人类被Man 男人和Woman女人分别实现,导致了同样的吃饭的功能却有不同的吃法的表现形态,这就是多态
总结:
面向对象的四大特征 封装、继承、抽象、多态,是不是也很符合生活形态,这就是编程,编程的目的就是通过计算机语言解决生活问题,计算机语言很多种,而Kollin就是其中的一种。