Belajar Bahasa Pemrograman Dart : Inheritance – getsolutionit.com
Belajar Bahasa Pemrograman Dart : Inheritance

Inheritance

Beberapa objek bisa memiliki beberapa karakteristik atau perilaku yang sama, namun sebenarnya mereka bukanlah objek yang sama. Di sini hadirlah peran inheritance atau pewarisan. 

Apa definisi keduanya? Inheritance adalah kemampuan suatu program untuk membuat kelas baru dari kelas yang ada. Konsep inheritance ini bisa dibayangkan layaknya seorang anak mewarisi sifat dari orang tuanya. 
Di dalam OOP kelas yang menurunkan sifat disebut sebagai kelas induk (parent class/superclass) sementara kelas yang mewarisi kelas induknya disebut sebagai kelas anak (child class/subclass).
Yuk kembali lagi pada contoh objek kucing. Selain kucing ada jenis hewan lain yang bersifat sama. 
Misalnya ikan dan burung juga memiliki nama, berat, dan umur. Selain itu mereka juga melakukan aktivitas seperti makan dan tidur. 
Yang membedakan objek tersebut adalah cara mereka bernafas dan bergerak. Untuk lebih memahami, perhatikanlah tabel kelas berikut:
CatFishBird
+ name
+ weight
+ age

+ furColor
+ name
+ weight
+ age

+ skinColor
+ name
+ weight
+ age

+ featherColor
- eat()
- sleep()
- poop()

- walk()
- eat()
- sleep()
- poop()

- swim()
- eat()
- sleep()
- poop()

- fly()
Bisa kita lihat pada tabel di atas bahwa objek CatFish, dan Bird memiliki beberapa property dan method yang sama seperti nameweightageeat(), dan sleep().
Dibandingkan membuat 3 kelas dan menuliskan ulang properti yang sama, kita bisa memanfaatkan teknik inheritance dengan mengelompokkan properti dan fungsi yang sama. Caranya buat sebuah kelas baru yang nantinya akan diturunkan sifatnya.
Animal
+ name
+ weight
+age
- eat()
- sleep()
- poop()
CatFishBird
+ furColor+ skinColor+ featherColor
- walk()- swim()- fly()
Setelah membuat kelas Animal, kita dapat membuat kelas lainnya lalu melakukan extends ke kelas induknya. Untuk menerapkan inheritance gunakan keyword extends seperti contoh berikut:


  1. Class ChildClass extends ParentClass {

  2.  

  3. }



Dengan begitu kita bisa membuat kelas Cat mewarisi kelas Animal.


  1. import 'Animal.dart'

  2.  

  3. class Cat extends Animal {

  4.   String furColor

  5.  

  6.   Cat(String name, int age, double weight, String furColor) : super(name, age, weight) {

  7.     this.furColor = furColor

  8.   }

  9.  

  10.   void walk() {

  11.     print('$name is walking'

  12.   }

  13.  

  14. }





  1. class Animal {

  2.   String _name = ''

  3.   int _age

  4.   double _weight = 0

  5.  

  6.   Animal(this._name, this._age, this._weight

  7.  

  8.   String get name => _name

  9.   double get weight => _weight

  10.  

  11.   void eat() {

  12.     print('$_name is eating.'

  13.     _weight = _weight + 0.2

  14.   }

  15.  

  16.   void sleep() {

  17.     print('$_name is sleeping.'

  18.   }

  19. }



Karena kelas Cat adalah turunan dari kelas Animal, maka kita bisa mengakses sifat dan perilaku dari Animal melalui kelas Cat.


  1. import 'Cat.dart'

  2.  

  3. void main() {

  4.   var dicodingCat = Cat('Grayson', 2, 2.2, 'Gray'

  5.   dicodingCat.walk

  6.   dicodingCat.eat

  7.   print(dicodingCat.weight

  8. }

  9.  

  10. /*

  11. Output :

  12.   Grayson is walking

  13.   Grayson is eating.

  14.   2.4000000000000004

  15.  */


Inheritance constructor

Karena kelas Animal memiliki constructor untuk menginisialisasi properti di dalamnya, maka semua kelas turunannya juga perlu mengimplementasikan constructor tersebut. 
Oleh sebab itu ketika membuat kelas Cat tanpa mendefinisikan constructor kita akan mendapatkan eror. IntelliJ IDEA akan memberikan saran untuk membuat constructor.


  1. Cat(String name, int age, double weight) : super(name, age, weight



Keyword super di atas akan diarahkan ke constructor dari kelas Animal.
Jika ingin menginisialisasikan nilai furColor melalui constructor, maka kita bisa menambahkan parameter di dalam constructor.


  1. Cat(String name, int age, double weight, String furColor) : super(name, age, weight) {

  2.   this.furColor = furColor

  3. }



Atau, kita bisa meringkasnya seperti yang telah kita pelajari pada materi constructor.


  1. Cat(String name, int age, double weight, this.furColor) : super(name, age, weight







z
Dijual Akun Youtube Sultan
Akun Sudah Memiliki 100-800.000 Subscribes & Sudah Monetisasi
Details
Dijual Akun FB, IG, LINKEDIN & Tiktok Mewah

Akun Sudah Memiliki 100-800.000 Followers

Details
Dijual Akun Twitter Mewah
Akun Sudah Memiliki 100-800.000 Followers
Details
Tools AI & Softwher
Tools AI & Beragam Softwher Serta Beragam Source Code Web Perimum
Details
.
Berikut List Produk Kami :

Dapatkan Produk Virtual Kmisini dengan harga pelajar, kualitas profesional ahli. 




Produk Yang Kami Jual Semua Berkualitas Premium & 100% Aman

Read More
Berikut List Layanan Kami :

Dapatkan layanan kami di sini dengan harga pelajar, kualitas profesional ahli. 




Jadikan Kami Tim Anda dalam Mengembangkan Bisnis Luar Biasa Anda.

Read More
Jasa Kelola Konten
Facebook, Instagram, Twitter, dan Linkedin
Details
Jasa Editing Video
Jasa mengelola Konten youtube dan tiktok
Details
Jasa Iklan Untuk Google
Website, Youtube, Gmail & Google Maps
Details
Jasa Website
Jasa Pembuatan website profesional
Details
Jasa SEO
Jasa SEO Website (search engine optimization)
Details
Jasa Tools AI
Setup & Pembuatan Tools
Details
Jasa Akun Terverifikasi
Centang Hijau / Biru All Media Sosial
Details
Jasa Pembuatan Project
IoT, Robotika, Elektronika dan Otomasi
Details
jasa sistem informasi
jasa pembuatan sistem informasi
Details
Jasa Pembuatan Aplikasi
Aplikasi Android, iOS dan Dekstop
Details
Jasa Google Maps
Jasa Pembuatan Titik Google Maps & Tambah Ulasan Positif
Details
Cyber Security
Jasa Cyber Security- Keamanan Semua Sistem
Details