当前位置: 首页 > news >正文

Vala 编程语言教程-继承

继承
        在 Vala 中,一个类可以继承自 ‌一个或零个‌ 其他类。尽管实际开发中通常继承一个类(不同于 Java 等语言的隐式继承机制),但 Vala 并不强制要求必须继承。

        当定义继承自其他类的子类时,子类的实例与父类将形成 ‌"is-a"‌ 关系。这意味着:

  1. 子类实例同时也是父类实例;
  2. 父类实例支持的操作,子类实例均支持;
  3. 任何需要父类实例的场景,均可替换为子类实例。

        在类定义中,开发者可以 ‌精确控制‌ 对象方法和数据的访问权限。以下示例演示了多种权限修饰符的用法:

class SuperClass : GLib.Object {

    private int data;

    public SuperClass(int data) {
        this.data = data;
    }

    protected void protected_method() {
    }

    public static void public_static_method() {
    }
}

class SubClass : SuperClass {

    public SubClass() {
        base(10);
    }
}
  • data 是 SuperClass 的 ‌私有实例成员‌,仅允许 SuperClass 内部的代码访问;
  • protected_method 是 SuperClass 的 ‌受保护实例方法‌,仅允许 SuperClass 及其子类的实例调用;
  • public_static_method 是 SuperClass 的 ‌公共静态方法‌:
    • static 修饰符使其无需实例即可调用(执行时无 this 引用);
    • public 修饰符允许任何代码调用,无论其与 SuperClass 的关系。

通过上述定义,SubClass 实例将包含 SuperClass 的所有三个成员,但只能访问 ‌非私有成员‌(即 protected_method 和 public_static_method)。外部代码仅能访问 public_static_method

        ‌构造函数链式调用‌:
        子类构造函数可通过 base 关键字调用父类构造函数(如示例中 base(10) 调用了父类的 SuperClass(int data) 构造函数)。

http://www.dtcms.com/a/95827.html

相关文章:

  • 利用c#书写调用MVS书写的图片处理文件.sol
  • [C++开发经验总结]何时用push?/何时用emplace?
  • Flask项目部署:Flask + uWSGI + Nginx
  • 维智 Harmony NEXT 定位 SDK:鸿蒙生态下的空间智能应用实践
  • 软件兼容性测试的矩阵爆炸问题有哪些解决方案
  • Unity UGUI - 六大基础组件
  • GNSS数据说明-RTCM
  • 简单谈谈很火的MCP( Model Context Protocol,模型上下文协议)
  • 【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)
  • HarmonyOS NEXT状态管理实践
  • Yolo_v8的安装测试
  • 以太坊主网 PoS 节点搭建指南
  • 天锐蓝盾终端安全防护——企业终端设备安全管控
  • 如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南
  • 嵌入式linux系统中对应的文件锁详细实现方法
  • AI-人工智能-实现将静态图片和视频合成为类似iPhone的Live Photo(动态照片)效果
  • iPhone mini,永远再见了
  • 量子力学:从经典物理危机到思维革命的新纪元
  • 6.Excel:通过 Power Query 处理从网上获取的数据
  • 西门子s7协议
  • 自然语言处理(15:RNNLM的学习和评价(整个第4章大总结))
  • Linux子系统 - USB描述符结构体
  • 深入探索Windows Hook技术:原理、内核级实现与高级应用
  • 压力测试未覆盖边界条件的后果有哪些
  • 常见的锁策略
  • angular获取roleFormGroup的control值
  • k8s scheduler几种扩展方式的关系及区别
  • RDMA的挑战与限制
  • 远程办公新体验:用触屏手机流畅操作电脑桌面
  • PhotoScissors快速抠图与背景填充