1. 概述
是指一个类直接使用另一个类的属性和方法,这样可以使得子类具有与父类相同的属性和方法,就可以减少重复代码,这种操作就叫做继承。
因为scala语言是支持面向对象编程的,我们也可以使用scala来实现继承,通过继承来减少重复代码。
2. 语法
- scala中使用extends关键字来实现继承
- 可以在子类中定义父类中没有的字段和方法,或者重写父类的方法
- 类和单例对象都可以有父类
语法:
class/object A类 extends B类 {
...
}
注:
- 上述格式中,A类称之为:子类、派生类
- B类称之为:父类、超类、基类
注:通过增加关键字不允许子类重写或访问
不允许子类重写:在定义父类的变量或方法时在var/val的前面加final
不允许子类访问:在定义父类的变量或方法时在var/val的前面加private
3. 案例
已知学生类(Student)和老师类(Teacher),他们都有姓名和年龄,都要吃饭,用继承的思想去实现
package 继承
object demo {
class Person {
var name = "";
var age = 0;
def eat()= println(s"${name}在吃饭")
}
class Student extends Person {
}
class Teacher extends Person {
}
def main(args: Array[String]): Unit = {
var student=new Student();
student.name="张荷";
student.age=20;
student.eat();
var teacher=new Teacher();
teacher.name="韩小姣";
teacher.age=30;
teacher.eat();
}
}
4.方法重写(以案例为例)
object demo {
class Person {
var name = "";
var age = 0;
def eat()= println(s"${name}在吃饭")
}
class Student extends Person {
@Override
override def eat(): Unit = println(s"${name}先上了个厕所然后再吃饭")
}
def main(args: Array[String]): Unit = {
var student=new Student();
student.name="张荷";
student.eat();
}
}