Dart面向对象理解
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 面向对象的理解和代码实现,开发过程中可以根据自己的需求使用这些特性。
- 点赞
- 收藏
- 关注作者
评论(0)