- Java的动态绑定只是方法的动态绑定
- Scala的动态绑定不仅包括方法还包括属性的动态绑定
动态绑定机制:
1.成员方法在执行的过程中,JVM会将方法和当前调用对象实际内存进行绑定
2.属性没有动态绑定机制.属性在哪里声明就在哪里使用,靠的是this Scala中属性和方法都是动态绑定,而Java中只有方法是动态绑定(意味着Scala中属性和方法可以重写,而Java中只能重写方法)
class Person {
var name:String = "person"
var age:Int = _
def info(): Unit ={
println(s"Person: $name,age: $age")
}
}
class Student extends Person {
override var name:String = "student"
override var age:Int = 18
override def info(): Unit = {
println(s"Student: $name,age: $age")
}
}