Belajar PHP OOP Part 1.17 : Abstract Class

Abstract Class

  • Saat kita membuat class, kita bisa menjadikan sebuah class sebagai abstract class
  • Abstract class artinya, class tersebut tidak bisa dibuat sebagai object secara langsung, hanya bisa diturunkan
  • Untuk membuat sebuah class menjadi abstract, kita bisa menggunakan kata kunci abstract sebelum kata kunci class
  • sehingga abstract class bisa kita gunakan sebagai kontrak child class

<?php

namespace Data;

abstract class Location{
public string $name;
}

class City extends Location
{
}

class Province extends Location
{
}

class Country extends Location
{
}
<?php

require_once "data/Location.php";
use Data\{Location ,City, Province, Country};

$location = new Location();
tidak bisa membuat object di class abstract

Abstract Function

  • Saat kita membuat class yang abstract, kita bisa membuat abstract function juga di dalam class abstract tersebut
  • Saat kita membuat sebuah abstract function, kita tidak boleh membuat block function untuk function tersebut
  • Artinya, abstract function wajib di override di class child
  • Abstract function tidak boleh memiliki access modifier private
Error Abstract Function tidak boleh ada body
<?php

namespace Data;

abstract class Animal
{
public string $name;

abstract public function run(): void
{

}
}
abstract function tidak boleh ada body

Class Child tidak Implementasi Function Abstract akan Error

<?php

namespace Data;

abstract class Animal
{
public string $name;

abstract public function run();
}

class Cat extends Animal
{
public function run(): void
{
echo "Cat $this->name is running" . PHP_EOL;
}
}

class Dog extends Animal
{

}
error class child tidak impementasi abstract function


<?php

namespace Data;

abstract class Animal
{
public string $name;

abstract public function run();
}

class Cat extends Animal
{
public function run(): void
{
echo "Cat $this->name is running" . PHP_EOL;
}
}

class Dog extends Animal
{
public function run(): void
{
echo "Dog $this->name is running" . PHP_EOL;
}
}
<?php

require_once "data/Animal.php";

use Data\{Animal, Cat, Dog};

$cat = new Cat();
$cat->name= "Luna";
$cat->run();

$dog = new Dog();
$dog->name = "Doggy";
$dog->run();
output class child function abstract

Next Post Previous Post
No Comment
Add Comment
comment url