Dart面向对象理解

举报
IT编程技术学习栈 发表于 2023/04/14 11:21:30 2023/04/14
【摘要】 Dart 是一门面向对象的编程语言,支持类、继承、多态等面向对象特性。以下是 Dart 面向对象的一些常见理解和代码实现: 1. 类和对象在 Dart 中,可以使用 class 关键字定义类,使用 new 关键字创建对象。以下是一个示例代码,定义了一个名为 Person 的类,并创建了两个对象:class Person { final String name; final int age...

Dart 是一门面向对象的编程语言,支持类、继承、多态等面向对象特性。以下是 Dart 面向对象的一些常见理解和代码实现:

1. 类和对象

在 Dart 中,可以使用 class 关键字定义类,使用 new 关键字创建对象。以下是一个示例代码,定义了一个名为 Person 的类,并创建了两个对象:

class Person {
  final String name;
  final int age;

  Person({required this.name, required this.age});
}

void main() {
  final person1 = Person(name: 'Alice', age: 25);
  final person2 = Person(name: 'Bob', age: 30);
  print(person1.name); // 输出 "Alice"
  print(person2.age); // 输出 30
}

在上述代码中,使用 class 定义了一个名为 Person 的类,具有 name 和 age 两个属性。在 main 函数中,使用 new 创建了两个 Person 对象,分别为 person1 和 person2。

2. 继承和多态

在 Dart 中,可以使用 extends 关键字实现类的继承,并使用 @override 注解重写父类方法实现多态。以下是一个示例代码,定义了一个名为 Student 的子类,并重写了父类的 toString 方法:

class Student extends Person {
  final String school;

  Student({required String name, required int age, required this.school})
      : super(name: name, age: age);

  @override
  String toString() {
    return '$name is a student at $school';
  }
}

void main() {
  final student = Student(name: 'Charlie', age: 20, school: 'Harvard');
  print(student.toString()); // 输出 "Charlie is a student at Harvard"
}

在上述代码中,使用 extends 关键字实现了 Student 子类继承自 Person 父类,并重写了父类的 toString 方法以实现多态。

3. 抽象类和接口

在 Dart 中,可以使用 abstract 关键字定义抽象类,抽象类不能被实例化,只能被子类继承。Dart 不支持显式的接口定义,但是通过抽象类和 implements 关键字可以实现类似接口的功能。以下是一个示例代码,定义了一个名为 Animal 的抽象类和一个名为 Flyable 的抽象类,以及一个名为 Bird 的子类实现了 Flyable 接口:

abstract class Animal {
  void eat();
}

abstract class Flyable {
  void fly();
}

class Bird extends Animal implements Flyable {
  @override
  void eat() {
    print('Bird is eating');
  }

  @override
  void fly() {
    print('Bird is flying');
  }
}

void main() {
  final bird = Bird();
  bird.eat(); // 输出 "Bird is eating"
  bird.fly(); // 输出 "Bird is flying"
}

在上述代码中,定义了一个名为 Animal 的抽象类和一个名为 Flyable 的抽象类,以及一个名为 Bird 的子类实现了 Flyable 接口。

以上是一些常见的 Dart 面向对象的理解和代码实现,开发过程中可以根据自己的需求使用这些特性。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。