当前位置:网站首页 > Go语言开发 > 正文

仓颉语法_仓颉语言编程

类和接口

仓颉支持使用传统的类(class)和接口(interface)来实现面向对象范式编程。仓颉语言只允许单继承,每个类只能有一个父类,但可以实现多个接口。每个类都是Object的子类(直接子类或者间接子类)。此外,所有的仓颉类型(包括Object)都隐式的实现Any接口。

仓颉提供open修饰符,来控制一个类能不能被继承,或者一个对象成员函数能不能被子类重写(override)。

在下面的例子中,类 B 继承了类 A,且同时实现了接口 I1 和 I2。为了让 A 能够被继承,它的声明需要被open修饰。类 A 中的函数f也被open修饰,因此可以在 B 中被重写。对函数f的调用会根据对象具体的类型来决定执行哪个版本,即动态派遣

 

open class A {    let x: Int = 1    var y: Int = 2     open func f(){        println("function f in A")    }     func g(){        println("function g in A")    }}   interface I1 {    func h1()} interface I2 {    func h2()} class B <: A & I1 & I2 {    override func f(){        println("function f in B")    }     func h1(){        println("function h1 in B")    }     func h2(){        println("function h2 in B")    }} main() {    let o1: I1 = B()    let o2: A = A()    let o3: A = B()     o1.h1() // "function h1 in B"    o2.f()  // "function f in A"    o3.f()  // 动态派遣,"function f in B"    o3.g()  // "function g in A"}

仓颉的 interface 之间也可以继承,并且不受单继承的约束,即一个 interface 也可以继承多个父 interface。如下示例,I3可以同时继承I1和I2。因此,若要实现I3,需要提供对f、g和h三个函数的实现。

interface I1 {    func f(x: Int): Unit} interface I2 {    func g(x: Int): Int} interface I3 <: I1 & I2 {    func h(): Unit}
到此这篇仓颉语法_仓颉语言编程的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • go语言开发gui_go语言可以开发游戏吗2024-11-11 23:18:06
  • 编程语言性能比较_编程语言性能排行2024-11-11 23:18:06
  • go语言编程入门与实战技巧_go语言入门2024-11-11 23:18:06
  • go语言编程入门与实战技巧_golang开发工具2024-11-11 23:18:06
  • 5步轻松上手!零基础也能掌握go语言编程技巧_go语言入门2024-11-11 23:18:06
  • go语言入门项目_零基础怎么学编程2024-11-11 23:18:06
  • go语言用什么开发工具_go开发工具2024-11-11 23:18:06
  • go语言编程实战_golang好学吗2024-11-11 23:18:06
  • go语言开发的项目有哪些_go语言开发为什么难找工作2024-11-11 23:18:06
  • golang与java区别_go语言和java2024-11-11 23:18:06
  • 全屏图片