Dart的超级关键字:
在Dart, super关键字用于引用直接父类对象。它用于调用超类的属性和方法。它不调用方法,而当我们创建子类的实例时,父类的实例是隐式创建的,因此 super 关键字调用该实例。
super关键字的优点:
- 它可以用来访问父类的数据成员当两个父母和孩子有相同名称成员。
- 它用于防止覆盖父方法。
- 它可用于调用父类的参数化构造函数。
句法:
// To access parent class variables
super.variable_name;
// To access parent class method
super.method_name();
示例 1:显示继承中对象创建的流程。
class SuperGeek {
// Creating parent constructor
SuperGeek()
{
print("You are inside Parent constructor!!");
}
}
class SubGeek extends SuperGeek {
// Creating child constructor
SubGeek()
{
print("You are inside Child constructor!!");
}
}
void main()
{
SubGeek geek = new SubGeek();
}
输出:
You are inside Parent constructor!!
You are inside Child constructor!!
示例#2:访问父类变量
// Creating Parent class
class SuperGeek {
String geek = "Geeks for Geeks";
}
// Creating child class
class SubGeek extends SuperGeek {
// Accessing parent class variable
void printInfo()
{
print(super.geek);
}
}
void main()
{
// Creating child class object
SubGeek geek = new SubGeek();
// Calling child class method
geek.printInfo();
}
输出:
Geeks for Geeks
示例 #3:访问父类方法
class SuperGeek {
// Creating a method in Parent class
void printInfo()
{
print("Welcome to Gfg!!\nYou are inside parent class.");
}
}
class SubGeek extends SuperGeek {
void info()
{
print("You are calling method of parent class.");
// Calling parent class method
super.printInfo();
}
}
void main()
{
SubGeek geek = new SubGeek();
geek.info();
}
输出:
You are calling method of parent class.
Welcome to Gfg!!
You are inside parent class.
Dart的这个关键字:
super关键字用于调用父类,而该关键字用于调用类本身。
这个关键字的优点:
- 可用于调用当前类的实例变量。
- 它可用于设置实例变量的值。
- 它可用于返回当前类实例。
在Dart使用这个关键字 –
// Creating class
class Geek {
// Creating an instance variable
String geek_info;
// Creating a parameterized constructor
Geek(String info)
{
// Calling instance variable using this keyword.
this.geek_info = info;
}
void printInfo()
{
print("Welcome to $geek_info");
}
}
void main()
{
Geek geek = new Geek("Geeks for Geeks");
// Calling method
geek.printInfo();
}
输出:
Welcome to Geeks for Geeks