大数据系列修炼-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
- 大数据系列修炼-Scala课程11
- 大数据系列修炼-Scala课程01
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程03
- 大数据系列修炼-Scala课程04
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程06
- 大数据系列修炼-Scala课程07
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程10
- 大数据系列修炼-Scala课程12
- 大数据系列修炼-Scala课程15
- 大数据系列修炼-Scala课程17
- 大数据系列修炼-Scala课程18
- 大数据系列修炼-Scala课程19
- 大数据系列修炼-Scala课程20
- 大数据系列修炼-Scala课程21
- 一种高效、可自动扩容、缓存、永久存储通用方案设计
- Sublime Text 安装QuickXDev插件
- Linux deepin系统远程部署项目到tomcat服务器
- linux搭建nginx
- hadoop集群初识安装
- 大数据系列修炼-Scala课程11
- Event Handling Guide for iOS--(二)---Gesture Recognizers(翻译)
- Java代理模式及动态代理
- number(数位DP)
- 计算机网络学习 1.1
- 第一次利用CSS小感
- 【剑指offer】树的子结构
- how to build a git server
- 同一页面弹框打开框 打开对应id对话框