Lớp con có thể kế thừa tất cả các thuộc tính (phương thức, biến) và hành vi của phương thức khởi tạo lớp cha mong đợi. & Phương thức khởi tạo lớp cha có thể được gọi trong lớp con bằng cách sử dụng phương thức khởi tạo super () . Chúng ta có thể truy cập cả phương thức khởi tạo không tham số hóa và tham số hóa của lớp cha. Việc truy cập hàm tạo của lớp cha hơi khác trong Dart. Cú pháp được đưa ra dưới đây.
Cú pháp:
SubClassConstructor (): super () { }
Implicit super
Như chúng ta biết rằng hàm tạo được tự động gọi khi chúng ta khởi tạo một lớp. Khi chúng ta tạo đối tượng của lớp con, nó gọi phương thức khởi tạo của lớp con mà ngầm định gọi phương thức khởi tạo mặc định (không tham số hóa) của lớp cha. Chúng ta có thể sử dụng hàm tạo super () trong lớp con của mình để gọi hàm tạo siêu lớp. Hãy hiểu ví dụ sau.
Các bài viết liên quan:
Ví dụ
// Parent class class Superclass { Superclass() { print("This is a superclass constructor"); } } class Subclass extends Superclass { Subclass() { print("This is a subclass constructor"); } display() { print("Welcome to Dart"); } } void main() { print("Dart Implicit Superclass constructor call"); // We create a object of sub class which will invoke subclass constructor. // as well as parent class constructor. Subclass s = new Subclass(); // Calling sub class method s.display(); }
Explicit super
Nếu phương thức khởi tạo lớp cha bao gồm các tham số thì chúng ta yêu cầu gọi phương thức khởi tạo super () với đối số trong để gọi phương thức khởi tạo siêu super trong lớp con một cách rõ ràng. Hãy hiểu ví dụ sau.
Ví dụ:
// Parent class class Superclass { Superclass(String msg) { print("This is a superclass constructor"); print(msg); } } class Subclass extends Superclass { Subclass() : super("We are calling superclass constructor explicitly ") { print("This is a subclass constructor"); } display() { print("Welcome to Dart"); } } void main() { print("Dart Implicit Superclass constructor example"); // We create an object of sub class which will invoke subclass constructor. // as well as parent class constructor. Subclass s = new Subclass(); // Calling sub class method s.display(); }