a、封装思想在Scala面向对象编程同样适用。
b、继承:extends
案例1:scala子类继承父类
package com.qf2
//父类
class Pig extends Animal {}
//子类
object Test{
def main(args: Array[String]): Unit = {
var p=new Pig
p.name="佩奇"
print(p.name)
}
}
案例2:子类继承父类构造方法中的参数的写法
package com.qf2
class Pig(name1:String) extends Animal(name1) {
def pint(): Unit ={
print("---->"+name1)
}
}
object Test{
def main(args: Array[String]): Unit = {
var p=new Pig("佩奇")
p.pint()
}
}
案例3:访问修饰符 protected
class Animal {
protected var name:String=""
}
子类中可以访问父类protected属性
class Pig extends Animal{
def pint(): Unit ={
print("---->"+name)
}
}
没有继承关系,即使同包,可不以访问父类protected属性
class Dog {
def pint(): Unit ={
val a=new Animal()
print("---->"+a.name)
}
}
java :同包中的类可以访问属性,不同包的子类中也可以访问父类的属性
scala:只有父子类关系才能够访问。
c、 scala的访问修饰符 public protected private,默认访问修饰符就是public
d、final 在Scala适用
f、重写
class Dog extends Animal {
override def eat(): Unit ={
print("----->")
}
}