Scala类的继承,抽象类定义,接口定义
1. 继承
1.1. 扩展类
在Scala中扩展类的方式和Java一样都是使用extends关键字
1.2. 重写方法
在Scala中重写一个非抽象的方法必须使用override修饰符
1.3. 类型检查和转换
Scala | Java |
---|---|
obj.isInstanceOf[C] | obj instanceof C |
obj.asInstanceOf[C] | (C)obj |
classOf[C] | C.class |
1.4. 超类的构造
package cn.toto.scala.day2/*** trait相当于是Java8中的接口实现*/
trait Flyable {//这里不是抽象的,因为它已经实现了def fly() : Unit = {println("I can fly")}//这里相当于是抽象类def fight() : String
}//定义一个抽象类
abstract class Animal {def run() : Intval name : String
}//继承类使用extend,实现接口使用with
class Human extends Animal with Flyable {val name = "abc"//在Scala中重写一个非抽象方法必须用override修饰override def fight(): String = {"fight"}//在子类中重写超类的抽象方法时,不需要使用override关键字,写了也可以def run(): Int = {1}//打印几次"AVC"val t1,t2,(a,b,c) = {println("ABC")(1,2,3)}
}
Scala类的继承,抽象类定义,接口定义相关推荐
- JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...
- abstract类_012 JAVA 抽象类、接口、String类的基础了解
1.抽象方法和抽象类 抽象方法:使用abstract修饰的方法,没有方法体,只有声明.抽象方法可以当做是一种规范,让子类必须实现. 注意: 1.抽象方法没有方法体,只能以分号结尾 2.抽象方法只能声明 ...
- Java 类和对象——抽象类、接口、Object类
本文章继续来介绍类和对象的知识.重点介绍抽象类和接口,Object类只做简单介绍. 现在,定义一个Shape类(形状类),当不同的对象去调用的时候,就会画出不同的图形,使用圆这个对象去调用,就会画出⚪ ...
- java学习笔记03-封装 继承 抽象类 多态 接口
封装:在类的属性设置时 使用private将数据隐藏.不允许使用a.xingming来调用数据,可以设置get和set函数来对数据进行查看和修改(在其中添加if的判断语句来控制该参数的修改权限和读取权 ...
- java中演示类_java中抽象类与接口的图文演示
java中抽象类与接口的图文演示 首先看图: 抽象方法: 没有方法体的方法.必须在与抽象类中.被abstract修饰的方法. 1.抽象类可以存在抽象方法,可以存在普通方法 2.抽象类不能实例化 3.抽 ...
- java中定义一个数学家类,java每日一练(19_04_06)|类、继承—— 抽象类
名人名言 昨日翻译 When one door of happiness closes, another opens; but often we look so long at the closed ...
- Scala类的继承和抽象类
- Java声明定义抽象类_接口_继承_实现
文章目录 声明定义抽象类 声明定义接口 派生类.抽象类.接口的继承要点 声明定义抽象类 public abstract class CRMSystem {public abstract Client ...
- Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年
定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年计算的活期利率)三个利息率常数(分别为 ...
最新文章
- iOS开发之UIDevice通知
- 【Ovirt 笔记】JBoss modules 配置分析与整理
- 使用Android studio 运行react-native项目
- 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
- Chromium OS 开源项目
- 微软要干掉ADOBE?
- a simple introduce to arontab
- c++ eos智能合约开发_hyperledger fabric 开发第一个智能合约
- 森林病虫防治系统 (十二)
- linux修改对外访问ip_linux 同一个ip 绑定两个不同的域名 访问两个不同的项目
- 安装protobuf
- c51步进电机程序汇编语言,51单片机驱动步进电机(汇编语言)
- Lnmp部署tp5项目报错:require(): open_basedir restriction in effect. File(/home/wwwroot/api.321.design/think
- 图片上传返回淘宝链接
- 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!
- 谈谈你对 Webpack 的理解
- 用python画笛卡尔心形线_05.总是套路得人心,如何用数学+Python示爱!
- UnrealEditor-RHI.dll 没有被指定在windows上运行
- SSM+微信小程序网易云音乐设计与实现 毕业设计-附源码261620
- 微信朋友圈里,微信群里的早报新闻简报都是哪里来的呢?
热门文章
- python常用模块(一)
- python使用ORM之如何调用多对多关系
- VTK:选择可见点用法实战
- boost::mpl模块实现remove_if相关的测试程序
- boost::math::quadrature::sinh_sinh用法的测试程序
- boost::math::tools::luroth_expansion用法的测试程序
- boost::lambda::bind用法的测试程序
- boost::hana::max用法的测试程序
- boost::graph模块实现读graph文件.dat的测试程序
- boost::geometry::sectionalize用法的测试程序