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

仓颉编程语言曝光图_仓颉编程语言官网

类和接口

仓颉支持使用传统的类(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-20 07:00:07
  • 编程语言到底是什么_编程语法基础知识2024-11-20 07:00:07
  • 对编程语言的熟练程度描述_编程心得体会2024-11-20 07:00:07
  • 最新发布编程语言_新出的编程语言2024-11-20 07:00:07
  • 编程语言的发展阶段_什么是编程语言2024-11-20 07:00:07
  • 仓颉编译器_编程语言发明时间2024-11-20 07:00:07
  • 如何学好一门编程语言_自学编程语言2024-11-20 07:00:07
  • 编程语言的对象是什么_java的基础知识2024-11-20 07:00:07
  • 编程语言速度排行_编程语言性能对比2024-11-20 07:00:07
  • 编程语言的发展过程简述_编程的基础知识2024-11-20 07:00:07
  • 全屏图片