跳转到内容

Vala 编程/概念/对象

来自维基教科书,开放的书籍,开放的世界

面向对象编程

[编辑 | 编辑源代码]

Vala 的 OO 系统非常类似于,并且在某种程度上基于像 C#Java 这样的语言。请注意,与这些语言不同,Vala 不会强迫你采用和 面向对象范式,但为了获得最大程度的生产力,强烈建议采用它;并且由于大多数第三方库和绑定都使用面向对象,最终你将不得不采用它。

通常,Vala 中的 声明如下

/*Simple Class Derived From GLib.Object*/
public class Sample : GLib.Object {
    
    /*Class Fields*/    
    bool my_field; 
    int my_int_field = 2;

    public Sample () {
        /* Constructor */
    }
    public ~Sample () {
        /* Destructor */
    }
    public void my_method () {
        /*Method Code*/
    }
    public int return_method () {
        /*Return Some Integer*/
        return my_int_field;
    }
    public void param_method (int param) {
        /*Use Arguments*/
    }
}
/*Intermediate Hacking...*/

请注意,如果你声明一个基类,建议从 GLib.Object 派生它,否则你将无法访问它的一些功能。

多态性

[编辑 | 编辑源代码]

Vala 中的继承非常类似于 C#。Vala 只支持单继承,即你不能从多个基类继承一个对象。一般格式如下

/*Inheriting From Other Classes*/
public class Base : GLib.Object {
    public int member;
    public Base (int carg) {
        /*Code Here*/
    }
}
public class Derived : Base {
    public Derived () {
        base (14); // Call base constructor
        /*Code Here*/
    }
}

抽象类

[编辑 | 编辑源代码]

处理程序

[编辑 | 编辑源代码]
华夏公益教科书