云计算百科
云计算领域专业知识百科平台

Flutter 零基础入门(十五):继承、多态与面向对象三大特性

文章目录

    • 一、什么是面向对象?
    • 二、面向对象三大特性概览
    • 三、封装(Encapsulation)
      • 1️⃣ 什么是封装?
      • 2️⃣ Dart 中的封装体现
      • 3️⃣ 为什么要封装?
    • 四、继承(Inheritance)
      • 1️⃣ 什么是继承?
      • 2️⃣ Dart 中的继承
      • 3️⃣ 重写(override)
    • 五、多态(Polymorphism)
      • 1️⃣ 什么是多态?
      • 2️⃣ 多态示例
      • 3️⃣ 面向抽象编程
    • 六、三大特性如何协同工作?
    • 七、Flutter 为什么大量依赖三大特性?
    • 八、新手常见误区
    • 九、这一篇你真正掌握了什么?
    • 十、总结
    • 🔜 下一篇预告

在前面的学习中,我们已经分别学过:

  • 类(Class)与对象(Object)
  • 构造函数、this、late
  • 抽象类(abstract)与接口思想

但你可能还没有一个整体感觉:

👉 为什么要学这些? 👉 它们之间的关系是什么? 👉 Flutter 到底在用什么思想?

这一篇,我们来系统梳理面向对象的三大特性,也是你从“会写 Dart”到“理解 Flutter 架构”的关键一步。


一、什么是面向对象?

一句话理解:

用“对象”来描述真实世界中的事物

对象:

  • 有属性(数据)
  • 有行为(方法)

Dart、Flutter 都是强面向对象体系。


二、面向对象三大特性概览

特性解决的问题
封装 隐藏细节,控制使用方式
继承 复用代码,建立层级关系
多态 面向抽象编程,解耦逻辑

接下来我们逐一拆解。


三、封装(Encapsulation)

1️⃣ 什么是封装?

封装的核心是:

只暴露“该暴露的”,隐藏“不该关心的”


2️⃣ Dart 中的封装体现

class User {
final String _password;

User(this._password);
}

  • _password 是私有属性
  • 外部无法直接访问

📌 下划线 _ 是 Dart 的私有约定(库级私有)。


3️⃣ 为什么要封装?

  • 防止误用
  • 降低耦合
  • 提高安全性

Flutter 中的很多类: 👉 你只能用,不能乱改


四、继承(Inheritance)

1️⃣ 什么是继承?

继承表示:

子类拥有父类的属性和方法


2️⃣ Dart 中的继承

class Animal {
void move() {
print('moving');
}
}

class Dog extends Animal {
void bark() {
print('bark');
}
}

Dog:

  • 自动拥有 move
  • 还可以新增自己的行为

3️⃣ 重写(override)

class Dog extends Animal {
@override
void move() {
print('Dog is running');
}
}

📌 用 @override 明确表示重写父类行为。


五、多态(Polymorphism)

这是最重要、也是最抽象的一点。


1️⃣ 什么是多态?

一句话理解:

同一个方法,不同对象,有不同表现


2️⃣ 多态示例

abstract class Animal {
void move();
}

class Dog extends Animal {
@override
void move() {
print('Dog runs');
}
}

class Bird extends Animal {
@override
void move() {
print('Bird flies');
}
}


3️⃣ 面向抽象编程

void makeMove(Animal animal) {
animal.move();
}

这里:

  • 不关心具体类型
  • 只关心是否遵守 Animal 规则

📌 这就是多态的精髓。


六、三大特性如何协同工作?

来看一个完整示例:

abstract class Shape {
double area();
}

class Circle extends Shape {
final double r;

Circle(this.r);

@override
double area() {
return 3.14 * r * r;
}
}

class Square extends Shape {
final double side;

Square(this.side);

@override
double area() {
return side * side;
}
}

统一使用:

void printArea(Shape shape) {
print(shape.area());
}

📌 这就是:

  • 封装:隐藏计算细节
  • 继承:共享 Shape 规则
  • 多态:不同形状不同实现

七、Flutter 为什么大量依赖三大特性?

Flutter 本质上是:

一个由无数 Widget 组成的面向对象系统

  • Widget 是抽象概念
  • StatelessWidget / StatefulWidget 是继承
  • build 方法是多态

你学到这里,已经站在了 Flutter 设计的门口。


八、新手常见误区

❌ 过度继承 ❌ 类层级太深 ❌ 用继承解决所有问题

📌 Flutter 更偏向:

组合 > 继承

(这个思想后面会专门讲)


九、这一篇你真正掌握了什么?

你已经不再是:

  • “堆代码”
  • “背语法”

而是在:

  • 设计结构
  • 抽象问题
  • 理解框架思想

这是质变。


十、总结

本篇你系统掌握了:

  • 面向对象三大特性
  • Dart 中的具体体现
  • Flutter 架构背后的思想

🔜 下一篇预告

《Flutter 零基础入门(十六):Widget 基础概念与第一个 Flutter 页面》

下一篇开始: 🚀 正式进入 Flutter UI 世界

你将第一次:

  • 写 Flutter Widget
  • 理解 build 方法
  • 看懂 Flutter 页面是如何构成的
赞(0)
未经允许不得转载:网硕互联帮助中心 » Flutter 零基础入门(十五):继承、多态与面向对象三大特性
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!