• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

dart中类的继承

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

super

class Person {
    int age;
    string name;
    Person(int age, String name){
        this.age = age;
        this.name = name;
    }
    void sayhi(){
        print('my name is' this.name)
    }
}

class Worker extend Person{
    int salary;
    Worker(int age, string name, int salary) : super(age, name){  //super表示要继承父类的属性
        this.salary = salary;
    }
    @override  //告诉编译器和程序员他是一个重写覆盖父类的方法
    void sayhi(){
     super.sayhi()    //表示调用父类的sayhi方法 print(
'my salary is'+ this.salary) } }

在dart中是单继承只能继承单个父类,不能继承多个类,若想实现多继承必须通过多混合的方式实现。extend关键字将变成with来实现混合

混合:同时具备多个类的方法

  若类中有一个方法,混合里边也有一个方法,则优先使用类自身的方法;

  若只有混合里边有同名的方法,在最后面的会生效(如下例子中sleep会生效),因为他把前边的混合掉了

void main(){
  var p = new Person(15,'sdf');
  p.eat(); //并不会报错
}
class
Eat{ void eat(){ print('eat') } } class Sleep{ void sleep(){ print('sleep') } } class Person with Eat, sleep{ int age; string name; person(int age, string name){ this.age = age; this.name = name; } void sayhi(){ print('hi'); } }

抽象类

  抽象类的关键词:abstract,只有方法的定义,没有方法的实现。存在的意义就是有这个想法但是还没有实现。如果person类继承了抽象类,则抽象类中方法的实现便交给继承者实现;

  抽象类另一个特点是不能被实例化

abstract class Chouxiang{
    void ya()
}

class person extend Chouxiang{
    void ya(){
        print('sdf')
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Dartlistadd()和addAll方法使用发布时间:2022-07-18
下一篇:
Flutter/Dart中的异步编程之Future发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap