大数据系列修炼-Scala课程11

来源:互联网 发布:虚拟内存 知乎 编辑:程序博客网 时间:2024/05/16 18:28

核心内容:
1、Scala中的继承问题
2、重写字段代码实例
3、重写方法代码实例


scala中的继承、重写问题

1>scala中 extends、final关键字用法Java中相同
2>在Scala当中重写一个非抽象方法必须使用override关键字,即重写方法必须使用override
3>只有主构造器可以调用超类的主构造器,当然主构造器也可以调用超类的辅助构造器
4>Java当中一般是通过super关键字来调用父类的构造函数,而在scala中直接在子类声明的时候调用父类的构造函数并填充主构造器相应的参数


示例程序:

object App11 {  def main(args:Array[String]):Unit=  {    val bb = new B("zhangsan",30,7000)  //&1分配内存 &2父类构造函数&3子类构造函数    println(bb.school)               //final类型的常量在子类中得到了重写    println(bb.salary)               //调用子类自己的成员变量    println(bb.toString)  }}class Persion(var name:String,var age:Int){    println("这是父类!")    val school = "HBU"    def fun()= "Thank Spark!"    override def toString = name + "\t" + age  //重写从object继承过来的toString方法}class B(name:String,age:Int,val salary:Long)  extends Persion(name,age)  //在类定义的时候调用父类的主构造函数{    println("这是子类!")    override val school = "BJU"    override def toString = name + "\t"+age +"\t" + salary + "\t"+super.fun //重写Persion类的构造方法}

运行结果:

这是父类!这是子类!BJU7000zhangsan    30  7000    Thank Spark!

对于上面的程序,如果我们用Java写的话,代码如下:

public class App1{   public static void main(String[] args2)   {        B bb = new B("zhangsan",30,7000);      System.out.println(bb.school);      System.out.println(bb.salary);      System.out.println(bb.toString());   } }class Persion{   String name;   int age;   final String school = "HBU";   public Persion(String name,int age)   {       System.out.println("这是父类!");       this.name = name;       this.age = age;   }   public String fun()   {       return "Thank Spark";   }   @Override   public String toString()   {       return name + "\t" +age;   }}class B extends Persion{    public long salary ;    public B(String name,int age,long salary)    {        super(name,age);        this.salary = salary;        System.out.println("这是子类!");     }    final String school = "BJU";    public String toString()    {       return name + "\t" +age + "\t"+salary + "\t"+super.fun();    }}

运行结果:(相同)

这是父类!这是子类!BJU7000zhangsan    30  7000    Thank Spark

很明显,Java编写的程序显得有点麻烦了!
如有问题,欢迎留言指正!

0 0
原创粉丝点击