在一次面试中,面试官问我对Dart Flutter中的面向对象的理解,由于准备不足,感觉自己没给一个完美答复,另外还有其他的的问题也是答的不行,感觉对自己都没了信心。于是,回家后网上查资料,找Flutter教程学习,想着等准备充足了再一鼓作气,开启求职面试之路。
这里分享下目前我对Dart Flutter中的面向对象的理解。
Dart是一门面向对象的语言,具有面向对象的三大特性:封装、继承、多态。
封装是对象和类概念的主要特性。它把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象调用,而一部分属性和方法则隐藏。
继承是复用的一种手段,子类继承父类,会继承父类的所有公开属性和公开方法(包括计算属性),私有的属性和方法则不会被继承。子类可以覆写父类的公开方法。
多态性是指允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。
封装、继承都好理解,这里主要提供多态的例子。
多态是同一种行为具有不同表现形式或形态。以下是一个Dart多态代码示例:
void main() {
// 创建两个动物对象
Animal dog = new Dog();
Animal sheep = new Sheep();
// 调用动物的 eat 方法
dog.eat();
sheep.eat();
}
class Animal {
void eat() {
print('Animal class eat.');
}
}
class Dog extends Animal {
@override
void eat() {
print('Dog eat meat.');
}
}
class Sheep extends Animal {
@override
void eat() {
print('Sheep eat grass.');
}
}
目前正在学的这套Flutter教程也很给力,全程无废话。
Dart Flutter教程