开发者学堂课程【Scala 核心编程-基础:匿名子类】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8981
匿名子类
目录:
一、介绍
二、java 中的匿名子类使用的问题
三、scala 匿名子类
一、介绍
和 java 一样,可以通过包含带有定义或重写的代码块方式来创建一个匿名的子类。这个子类是临时的。因为每次构建的东西可能是不一样的。在 java 里有一个抽象类方法,创建的时候,它会提示这种方式就是动态的。
二、java 中的匿名子类使用的问题
新建一个 NoNameDemo01选择 class
package com.atguigu.chaptero.nyextends;
public class NoNameDemo01{
public static void main(string[] args) {
//在 java 中去创建一个匿名子类对象
A2 a2 = new A2()
@Override
public void cry(){
System.out.printin("cry...");
}
};
a2.cry();
}
}
abstract class A2{
Abstract public void cry();
}
三、scala 匿名子类
跟 java 的匿名之类其实非常的相似,使用方法几乎跟 java 一样。
例:
新建一个 ScalaNameDemo02选择 object
object ScalaNoNameDemoe2
def main(args: Array[
S
tring]): Unit={
val monster =new Monster {
override def cry():Unit ={
println("妖怪嗷嗷叫...:)")
}
override var name: String=_
}
monster.cry()
}
}
abstract class Monster{
var name:string
}
做了一个匿名子类,然后实例化了一个对象。因为这是一个抽象类,本质上 abstract 可以拿掉,运行结果:
D:\program\jdk8\bin\java
...
妖怪嗷嗷叫...:)
说明代码运行成功。