定义和实现普通trade股票程序化交易接口,接口
定义普通的trade股票程序化交易接口,接口:使用interface声明trade股票程序化交易接口,接口,trade股票程序化交易接口,接口中的方法没有方法体,也不用abstract关键字修饰;
package entrust
/**
* 定义一个学习trade股票程序化交易接口,接口 , 代表有学习的能力
*/
interface IStudy {
/**
* 抽象方法 , 学习
*/
fun study()
}
实现trade股票程序化交易接口,接口:使用“:”声明该类实现的trade股票程序化交易接口,接口,是trade股票程序化交易接口,接口的子类,注意类中必须实现trade股票程序化交易接口,接口的方法,实现方法需要使用override修饰;
package entrust
/**
* 定义学生类 , 实现学习trade股票程序化交易接口,接口 , 其有学习的能力
*/
class Student : IStudy {
/**
* 实现的学习抽象方法
*/
override fun study() {
println('学习')
}
}
I使用委托实现trade股票程序化交易接口,接口
使用委托实现trade股票程序化交易接口,接口:使用:IStudy声明该类实现了IStudytrade股票程序化交易接口,接口,但是这个类不实现study()抽象方法,而是委托给了Student类,当调用BadStudent的study()方法时,会自动调用Student类的Study()方法;
package entrust
/**
* 坏学生不学习 , 虽然实现了学习trade股票程序化交易接口,接口 , 但是其委托 普通学生来学习 , 自己什么都不做
*/
class BadStudent : IStudy by Student() {
}
II使用委托实现trade股票程序化交易接口,接口的基础上执行额外操作
使用委托实现trade股票程序化交易接口,接口的基础上执行额外操作:当类实现trade股票程序化交易接口,接口,并将trade股票程序化交易接口,接口的操作委托给了另外的类,此时仍可以实现trade股票程序化交易接口,接口中的方法,在重写的方法中,可以调用委托方法,并且还可以额外做其它操作;
package entrust
/**
* 最好的学生
* 委托 学生学习 , 自己额外学习更多东西
*/
class BestStudent : IStudy by Student() {
/**
* 委托其它类后 , 也可以自己实现该类 , 在委托方法的前后可以执行其它额外操作
*/
override fun study() {
println('复习之前的知识')
Student().study()
println('加强学习')
}
}
IV.测试上述三种trade股票程序化交易接口,接口实现(普通实现|委托|委托+额外操作)
测试上述三种情况:
测试trade股票程序化交易接口,接口实现类;
测试委托;
测试委托的同时额外执行其它操作;
package entrust
fun main() {
// I . 测试trade股票程序化交易接口,接口实现类
//创建 trade股票程序化交易接口,接口实现类 对象
var goodStudent : Student = Student()
//执行实现的内容
// 学习
goodStudent.study()
// II . 测试委托
// 创建 使用委托实现trade股票程序化交易接口,接口 类的对象
var badStudent : BadStudent = BadStudent()
//执行委托的方法
// 学习
badStudent.study()
//III . 测试委托的同时额外执行其它操作
//创建 使用委托实现trade股票程序化交易接口,接口并执行额外操作 类的对象
var bestStudent : BestStudent = BestStudent()
//执行委托方法和额外操作
/*
复习之前的知识
学习
加强学习
*/
bestStudent.study()
}
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点