Thừa kế(Inheritance) trong Dart – w3seo hướng dẫn kế thừa lập trình Dart

Rate this post

Kế thừa Dart được định nghĩa là quá trình lấy các thuộc tính và đặc điểm của một lớp khác. Nó cung cấp khả năng tạo một lớp mới từ một lớp hiện có. Đây là khái niệm cơ bản nhất của oops (cách tiếp cận lập trình hướng đối tượng). Chúng ta có thể sử dụng lại tất cả các hành vi và đặc điểm của lớp trước trong lớp mới.

  • Lớp cha – Lớp được kế thừa bởi lớp khác được gọi là lớp cha hoặc lớp cha . Nó còn được gọi là một lớp cơ sở .
  • Lớp con – Lớp kế thừa các thuộc tính từ lớp khác được gọi là lớp con. Nó còn được gọi là lớp dẫn xuất hoặc lớp con .

Giả sử chúng ta có một đội xe và chúng ta tạo ra ba lớp là Duster, Maruti và Jaguar. Các phương thức modelName (), milage () và man_year () sẽ giống nhau cho cả ba lớp. Bằng cách sử dụng kế thừa, chúng ta không cần phải viết các hàm này trong mỗi lớp trong số ba lớp.

Các bài viết liên quan:

Như bạn thấy trong hình trên, nếu chúng ta tạo lớp Car và viết hàm chung trong mỗi lớp. Khi đó, nó sẽ làm tăng sự trùng lặp và dư thừa dữ liệu trong chương trình. Sự kế thừa được sử dụng để tránh loại tình huống này.

Chúng ta có thể tránh dư thừa dữ liệu bằng cách xác định lớp Xe với các chức năng này trong đó và kế thừa trong các lớp khác từ lớp Xe. Nó tăng cường khả năng tái sử dụng của mã. Chúng ta chỉ cần viết hàm một lần thay vì nhiều lần. Chúng ta hãy nhìn vào hình ảnh sau đây.

Cú pháp được đưa ra dưới đây.

Cú pháp:

class child_class extends parent_class {  
    //body of child class  
}  

Lớp con kế thừa các hàm và biến, hoặc thuộc tính của lớp cha bằng cách sử dụng từ khóa expand. Nó không thể kế thừa phương thức khởi tạo của lớp cha; chúng ta sẽ thảo luận về khái niệm này sau.

Các loại thừa kế

Sự kế thừa có thể chủ yếu là bốn loại. Chúng được đưa ra dưới đây.

  • Thừa kế duy nhất
  • Nhiều người thừa kế
  • Kế thừa đa cấp
  • Kế thừa thứ bậc

Kế thừa một cấp

Trong thừa kế đơn, một lớp được kế thừa bởi một lớp hoặc lớp con được kế thừa bởi một lớp cha. Trong ví dụ sau, chúng ta tạo Person kế thừa lớp Human.

Hãy hiểu ví dụ sau.

Ví dụ:

Class  Bird {    
      void  bay ()  
         {  
            print ( "Con chim bay được" );  
          }  
   }    
      // Kế thừa lớp siêu  
Class  Parrot extends Bird{ {    
         // hàm lớp con  
         void  speak () {  
             print ( "Con vẹt biết nói" );  
                 }            
}  
void  main () {  
      // Tạo đối tượng của lớp con  
      Parrot p = new  Parrot ();    
      p.speak ();    
      p.fly ();    
}    

Giải trình:

Trong đoạn mã trên, chúng ta tạo lớp cha Bird và khai báo hàm fly () trong đó. Sau đó, chúng tôi tạo lớp con có tên là Parrot, lớp này kế thừa thuộc tính của lớp cha bằng cách sử dụng từ khóa expand. Lớp con có hàm speak () riêng của nó.

Bây giờ lớp con có hai hàm fly () và speak (). Vì vậy, chúng tôi đã tạo đối tượng của lớp con và truy cập vào cả hai hàm. Nó in kết quả ra bảng điều khiển.

Kế thừa đa cấp

Trong đa kế thừa, một lớp con được kế thừa bởi một lớp con khác hoặc tạo chuỗi kế thừa. Hãy hiểu ví dụ sau.

Ví dụ:

Class  Bird {    
      void  bay ()  
         {  
            print ( "Con chim bay được" );  
          }  
   }    
      // Kế thừa lớp siêu  
class Parrot extends Bird {    
         void  speak () {  
             print ( "Con vẹt biết nói" );  
                 }  
             
}  
   
// Kế thừa lớp cơ sở Parror  
class Eagle extends Parrot {  
          vision  () {  
             print ( "Chim ưng có tầm nhìn sắc bén" );  
                 }  
}  
void  main () {  
      // Tạo đối tượng của lớp con  
      Eagle e = new  Eagle ();    
      e.speak ();    
      e.fly ();    
      e.vision ();  
}    

Giải trình:

Trong ví dụ trên, chúng ta đã tạo một lớp Eagle mới khác và kế thừa lớp Parrot. Bây giờ con vẹt là lớp cha của Eagle, và lớp Eagle có được tất cả các chức năng của cả hai lớp cha. Chúng tôi đã tạo đối tượng của lớp con và truy cập vào tất cả các thuộc tính. Nó in kết quả ra màn hình.

Lưu ý – Dart không hỗ trợ đa kế thừa vì nó tạo ra sự phức tạp trong chương trình.

Kế thừa thứ bậc

Trong nội dung phân cấp, hai hoặc nhiều lớp kế thừa một lớp duy nhất. Trong ví dụ sau, hai lớp con Peter và James kế thừa lớp Person.

Ví dụ –

// Lớp cha  
Class Person {  
  void  dispName (String name) {  
    print (name);  
  }  
  
  void  dispAge ( int  age) {  
    print (age);  
  }  
}  
  
class Peter extends Person {  
   
  void  dispBranch (String nationality) {  
    print (nationality);  
  }  
}  
// Lớp dẫn xuất được tạo từ một lớp dẫn xuất khác.  
lớp  James  extends  Person {  
          void  kết quả (Kết quả chuỗi) {  
              print (kết quả);  
}  
}  
void  main () {  
      // Tạo đối tượng của lớp James  
      James j =  new  James ();  
      j.dispName ( "James" );  
      j.dispAge ( 24 );  
      j.result ( "Đạt" );  
  
    // Tạo đối tượng của lớp Peter  
      Peter p =  new  Peter ();  
      p.dispName ( "Peter" );  
      p.dispAge ( 21 );  
      p.dispBranch ( "Khoa học Máy tính" );  
  
}