当前位置:网站首页 > 编程语言 > 正文

仓颉语法_仓颉编程语言最新消息

类和接口

仓颉支持使用传统的类(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}
到此这篇仓颉语法_仓颉编程语言最新消息的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 最好学的编程语言排行_学编程那种语言更好2024-11-16 16:27:05
  • 2020四月最新编程语言_2023编程语言排行榜2024-11-16 16:27:05
  • 编程语言的发展过程是什么_计算机语言发展的四个阶段2024-11-16 16:27:05
  • 五种编程语言运行速度对比表_学编程那种语言更好2024-11-16 16:27:05
  • 编程语言的功能_js输入语句2024-11-16 16:27:05
  • 仓颉编译器_仓颉编译器2024-11-16 16:27:05
  • 如何学会一门新的编程语言技术_新手怎么开始学编程软件2024-11-16 16:27:05
  • 编程语言的对象是什么_JavaScript循环语句2024-11-16 16:27:05
  • 编程语言的发展历程_学好编程的重要性2024-11-16 16:27:05
  • 编程最新的语言_编程语言发展趋势2024-11-16 16:27:05
  • 全屏图片