Dart 编程中的方法覆盖
我们知道我们可以通过使用super关键字或简单地创建子类的对象来从子类访问超类中存在的方法。但是,当我们希望子类对象在使用子类对象调用时对同一方法做不同的事情时,可能会有不同的情况。我们可以通过在子类中再次定义与超类中存在的相同方法具有相同名称、相同参数和相同返回类型的相同方法来实现这一点。
现在,当我们调用该方法时,将调用和执行子类中存在的方法,而不是超类中定义的方法。我们在超类中已经存在的子类中定义具有相同名称、相同参数和相同返回类型的方法的过程称为方法覆盖。
方法覆盖规则
我们要覆盖的方法只能写在子类中,不能写在同一个类中。
返回类型应该与超类中存在的方法相同。
参数列表应该与超类中存在的方法相同。
如果一个方法被声明为static或final,我们就不能覆盖它。
如果我们不能继承一个方法,我们就不能覆盖它。
示例
我们来看一个dart中方法覆盖的例子。
考虑下面显示的例子-
class ParentClass {
void displayName(){
print("Inside the Parent class Method");
}
}
class ChildClass extends ParentClass {
void displayName(){
print("Inside the Child class Method");
}
}
void main(){
ParentClass pClassObject = new ParentClass();
ChildClass cClassObject = new ChildClass();
pClassObject.displayName();
cClassObject.displayName();
}在上面的例子中,我们有两个名为ParentClass和ChildClass的类,ParentClass是超类,ChildClass是继承超类的子类,我们在类和主函数中都声明了一个名为displayName的方法,当我们正在尝试调用该方法。
输出结果
Inside the Parent class Method Inside the Child class Method
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短