《深入浅出Dart》类的继承

简介: 继承继承的概念和用途在面向对象编程中,继承是一种能够创建新类的方式,我们可以在新类中添加新的方法和字段,也可以对父类的方法进行覆写或扩展。子类和父类在 Dart 中,我们可以使用 extends 关键字来创建一个子类:

继承

继承的概念和用途

在面向对象编程中,继承是一种能够创建新类的方式,我们可以在新类中添加新的方法和字段,也可以对父类的方法进行覆写或扩展。

子类和父类

在 Dart 中,我们可以使用 extends 关键字来创建一个子类:

class Animal {
  void eat() {
    print('Eating...');
  }
}
class Cat extends Animal {
  void meow() {
    print('Meow...');
  }
}
var cat = Cat();
cat.eat();  // 输出 Eating...
cat.meow();  // 输出 Meow...

在这个例子中,Cat 类是 Animal 类的子类,因此 Cat 类的对象可以访问 Animal 类的所有公有方法。

使用super关键字访问父类

在 Dart 中,我们可以使用 super 关键字来访问父类的方法:

class Animal {
  void eat() {
    print('Eating...');
  }
}
class Cat extends Animal {
  void eat() {
    print('Cat eating...');
    super.eat();
  }
}
var cat = Cat();
cat.eat();  
// 输出:
// Cat eating...
// Eating...

在这个例子中,Cat 类覆写了 Animal 类的 eat 方法,并在 Cat 类的 eat 方法中使用 super.eat() 来调用 Animal 类的 eat 方法。

方法覆写

如果子类和父类有同名的方法,那么在子类中的方法会覆写父类中的方法:

class Animal {
  void eat() {
    print('Eating...');
  }
}
class Cat extends Animal {
  @override
  void eat() {
    print('Cat eating...');
  }
}
var cat = Cat();
cat.eat();  // 输出 Cat eating...

使用@override注解,在 Dart 中,我们可以使用 @override 注解来表示子类的方法覆写了父类的方法。这是一种良好的编程习惯,可以提高代码的可读性。

目录
相关文章
|
6月前
|
JavaScript 前端开发 程序员
TypeScript 类 第三章 【抽象类,类的高级技巧】
TypeScript 类 第三章 【抽象类,类的高级技巧】
78 2
|
Dart JavaScript 前端开发
带你读《深入浅出Dart》七、类和对象(1)
带你读《深入浅出Dart》七、类和对象(1)
带你读《深入浅出Dart》七、类和对象(2)
带你读《深入浅出Dart》七、类和对象(2)
|
6月前
|
安全 Swift 开发者
【Swift开发专栏】Swift类的继承与多态
【4月更文挑战第30天】Swift中的OOP聚焦于类继承与多态,提供代码复用和类型安全。继承通过`class`和冒号实现,子类继承父类属性和方法,支持单继承以降低复杂性。多态借助协议和类型兼容实现,允许统一处理不同类型的对象。继承用于构建复杂类,多态则使代码更通用、可扩展。理解并运用这些概念对Swift开发者至关重要。
56 0
带你读《深入浅出Dart》九、多态
带你读《深入浅出Dart》九、多态
带你读《深入浅出Dart》八、继承
带你读《深入浅出Dart》八、继承
|
存储 Dart 安全
带你读《深入浅出Dart》十九、Dart中泛型
带你读《深入浅出Dart》十九、Dart中泛型
|
设计模式 Dart uml
抽象工厂模式-原理到实战应用(基于Dart语言)
抽象工厂模式-原理到实战应用(基于Dart语言)
106 0
|
Dart JavaScript 前端开发
《深入浅出Dart》面向对象之多态
多态 多态是面向对象编程的三大特性之一(封装、继承和多态)。在 Dart 中,多态表现为父类引用指向子类对象。这样,父类的引用就可以根据当前指向的子类对象,动态地调用其相应的方法,这是面向对象非常重要的一个特性。
98 0
|
存储 Dart 安全
《深入浅出Dart》Dart中的泛型
Dart中泛型 泛型,一种强大而灵活的编程工具,可以让开发者创建可以适应任何类型的代码,同时又保持类型安全。这是在许多编程语言中都存在的一种重要的特性,Dart也不例外。在这篇文章中,我们将深入探讨Dart中的泛型。
143 0