Flutter循序渐进==>封装、继承、多态、抽象类以及属性修改

在Flutter中,可以使用类和类成员(如方法和属性)来实现封装、继承、多态和抽象。以下是一些示例代码:




// 封装 - 创建一个类和私有属性
class Person {
  String _name;
 
  // 构造函数
  Person(this._name);
 
  // 公有方法访问私有属性
  String greet() {
    return 'Hello, my name is $_name.';
  }
}
 
// 继承 - 创建子类继承父类
class Employee extends Person {
  int _salary;
 
  // 构造函数调用父类构造函数
  Employee(String name, this._salary) : super(name);
 
  // 覆盖方法
  @override
  String greet() {
    return 'Hello, my name is ${super.greet()}, and I earn \$$_salary.';
  }
}
 
// 多态 - 使用父类类型变量引用子类实例
void main() {
  Person person = Person('Alice');
  print(person.greet()); // Hello, my name is Alice.
 
  Person employee = Employee('Bob', 50000);
  print(employee.greet()); // Hello, my name is Bob, and I earn $50000.
}
 
// 抽象类和方法
abstract class Animal {
  String name;
 
  Animal(this.name);
 
  // 抽象方法
  speak();
}
 
class Dog extends Animal {
  Dog(String name) : super(name);
 
  // 实现抽象方法
  @override
  speak() {
    return 'Woof! My name is $name.';
  }
}
 
void main() {
  Dog dog = Dog('Rex');
  print(dog.speak()); // Woof! My name is Rex.
}
 
// 属性修改
class Circle {
  double _radius = 0.0;
 
  Circle(this._radius);
 
  double get radius => _radius;
 
  void set radius(double value) {
    if (value >= 0) {
      _radius = value;
    }
  }
 
  double area() => _radius * _radius * 3.14;
}
 
void main() {
  Circle circle = Circle(5.0);
  print(circle.area()); // 输出圆的面积
  circle.radius = -2; // 设置一个无效的半径,将被忽略
  print(circle.area()); // 输出更新后的圆的面积
}

这个例子展示了如何在Flutter中使用类和继承来实现封装和继承,如何使用抽象类和方法来实现多态,以及如何通过getter和setter来修改属性值。

none
最后修改于:2024年08月12日 14:46

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日