仓颉面向对象-继承

一、继承的作用

      继承的作用就是减少子类中共有的属性和函数的定义,减少代码的重复冗余。

二、仓颉继承的语法

      仓颉中继承的关键字为<:,一个向左的尖括号和一个冒号组成。

      class 儿子类名 <: 父亲类名{}

注意:1.父类需要被继承需要用关键字open修饰,来表示这个类可以被继承。

           2.仓颉的继承是单继承,只能继承一个父类,不可以直接继承多个父类。(另外说明可以继                  承多个接口在本章中暂不做说明)

根据上述两种情况的对比以及错误提示,仓颉中父类要被继承必须要用open进行修饰。

三、仓颉继承中的一些注意点

1.仓颉继承关系中子类的构造一定依赖于父类构造

       如果父类中提供了无参数的主构造函数,子类中的主构造函数可以不用显示的写出super()

      如果父类中提供了有参数的主构造函数,子类中的主构造函数必须要显示的写出super(),并且super()里面的参数要和父类中的主构造函数一致。

2.子类会继承父类的变量和方法

open class Employee{
    var name : String = ""
    var age : Int64 = 0
    func showInfo(name:String,age:Int64)
    {
        println(name)
        println(age)
    }
}
class Manager <: Employee{
    
}
main(): Int64 {
    var manager : Manager = Manager()
    manager.name = "小明"
    manager.age = 26
    var managerName = manager.name
    var managerAge = manager.age
    println("经理的姓名:${managerName}")
    println("经理的年龄:${managerAge}")
    manager.showInfo(managerName, managerAge)
    return 0
}

运行结果:

       由此可见,Manager子类中并没有定义任何变量及方法,由于子类继承了父类,创建了子类对象后通过对象可以访问到父类的变量及方法并给其赋值,再次印证了通过继承可以减少代码的重复 冗余。

3.子类会扩展父类的能力(子类中有而父类没有)

open class Employee{
    var name : String = ""
    var age : Int64 = 0
    func showInfo(name:String,age:Int64)
    {
        println(name)
        println(age)
    }
}
class Manager <: Employee{
    func manageWorker()
    {
        println("经理管理员工")
    }
}
main(): Int64 {
    var manager : Manager = Manager()
    manager.manageWorker()
    return 0
}

     由此,子类中可单独定义方法,通过创建对象来进行访问,父类中没有,以此达到了扩展能力的作用。

内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合Koopman算子理论与递归神经网络(RNN)的数据驱动建模方法,旨在对非线性纳米定位系统进行有效线性化建模,并实现高精度的模型预测控制(MPC)。该方法利用Koopman算子将非线性系统映射到高维线性空间,通过递归神经网络学习系统的动态演化规律,构建可解释性强、计算效率高的线性化模型,进而提升预测控制在复杂不确定性环境下的鲁棒性与跟踪精度。文中给出了完整的Matlab代码实现,涵盖数据预处理、网络训练、模型验证与MPC控制器设计等环节,具有较强的基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)可复现性和工程应用价值。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及自动化、精密仪器、机器人等方向的工程技术人员。; 使用场景及目标:①解决高精度纳米定位系统中非线性动态响应带来的控制难题;②实现复杂机电系统的数据驱动建模与预测控制一体化设计;③为非线性系统控制提供一种可替代传统机理建模的有效工具。; 阅读建议:建议结合提供的Matlab代码逐模块分析实现流程,重点关注Koopman观测矩阵构造、RNN网络结构设计与MPC控制器耦合机制,同时可通过替换实际系统数据进行迁移验证,深化对数据驱动控制方法的理解与应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值