回顾
object w40 {
/*1·类和对象(一个类class + 多个对象)
2·new 创建对象,new XXX()
3·构造函数,构造器
4·辅助构造器 this
5·private:私有的。不对外发布,在外面不可以访问。在家之外的地方,不可以被别人知道。。。
6·override:重写,覆盖...
7·toString:是每个对象都会自带的一个方法,当我们使用println时,它就会自动被8·调用,返回一个字符串,就是输出的内容
9·equals:在使用== 判断的时候,会自动调用 如果返回true,则相等 如果返回false则不相等
apply 单例模式
伴生类 伴生对象
多个类之间的关系:继承
*/
}
多个类之间的关系 继承
object w38 {
class Boss {
def test():Unit={}
def power(): Unit = {
println("Boss 有权力...")
}
var car = "豪车"
}
class Nobody extends Boss {
def run():Unit={
}
override def power(): Unit = {
println("aaaaa")
}
}
def main(args: Array[String]): Unit = {
val b = new Nobody()
println(b.car)
b.power()
}
}
父类和子类的构造器调用顺序:先调用父类构造器,再调用子类构造器
object w39 {
class Father() {
println("Father 构造器被调用")
}
class Son extends Father {
println("Son 构造器被调用")
}
def main(args: Array[String]): Unit = {
new Son()
}
}
子类 中华田园犬
object w41 {
class Dog(var name:String,var age:Int) {
println(s"Dog ${name},${age}构造器被调用")
}
class RuralDog(name:String,age:Int) extends Dog(name, age) {
println("RuralDog 的构造器...")
}
def main(args: Array[String]): Unit = {
new RuralDog("旺财" ,3)
}
}