PHP OOP ನಲ್ಲಿ ಅಮೂರ್ತ ವರ್ಗ

A

ಈ ಲೇಖನದಲ್ಲಿ, ನಾವು PHP ಯಲ್ಲಿ ಅಮೂರ್ತ ವರ್ಗವನ್ನು ಕಲಿಯುತ್ತೇವೆ.

PHP ಯಲ್ಲಿ ಅಮೂರ್ತ ವರ್ಗ ಎಂದರೇನು?

ಅಮೂರ್ತ ವರ್ಗವು ವಿಧಾನಗಳ ಘೋಷಣೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಆದರೆ ಅವುಗಳ ವ್ಯಾಖ್ಯಾನವಲ್ಲ. ಇದು ಅವರ ಹೆಸರನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿದೆ. ಈ ವಿಧಾನಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು ಮಕ್ಕಳ ವರ್ಗದ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ.

ಅಮೂರ್ತ ವಿಧಾನ ಎಂದರೇನು?

ಅಮೂರ್ತ ವಿಧಾನವು ಅಮೂರ್ತ ವರ್ಗದ ಒಂದು ವಿಧಾನವಾಗಿದೆ, ಇದನ್ನು ಅಮೂರ್ತ ಕೀವರ್ಡ್‌ಗಳನ್ನು ಬಳಸಿ ಘೋಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ದೇಹವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಇದನ್ನು ಮಗುವಿನ ವರ್ಗದಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.

  • ಅಮೂರ್ತ ಅಮೂರ್ತ ವರ್ಗ ಅಥವಾ ವಿಧಾನವನ್ನು ಘೋಷಿಸಲು ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
  • ಒಂದು ಅಮೂರ್ತ ವರ್ಗವು ಕನಿಷ್ಟ ಒಂದು ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ಹೊಂದಿರಬೇಕು. ಆದಾಗ್ಯೂ, ಇದು ಅಮೂರ್ತವಲ್ಲದ ವಿಧಾನಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತದೆ.

ಸಿಂಟ್ಯಾಕ್ಸ್

<?php
abstract class ParentClass {
  abstract public function someMethod1();
  abstract public function someMethod2($name, $color);
  abstract public function someMethod3() : string;
}
?>

PHP ಯಲ್ಲಿ ಅಮೂರ್ತ ವರ್ಗದ ನಿಯಮಗಳು ಯಾವುವು?

  • ಒಂದು ಅಮೂರ್ತ ವರ್ಗವು ಕನಿಷ್ಟ ಒಂದು ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ಹೊಂದಿರಬೇಕು. ಆದಾಗ್ಯೂ, ಇದು ಅಮೂರ್ತವಲ್ಲದ ವಿಧಾನಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತದೆ.
  • ಒಂದು ಮಗು ಅಮೂರ್ತ ಪೋಷಕ ವರ್ಗವನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದಾಗ, ಅದು ಅದೇ ಹೆಸರಿನೊಂದಿಗೆ ಪೋಷಕ ವರ್ಗದ ಅಮೂರ್ತ ವಿಧಾನಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬೇಕು.
  • ಮಕ್ಕಳ ವರ್ಗದಲ್ಲಿ ಅಮೂರ್ತ ವಿಧಾನಗಳನ್ನು ವಿವರಿಸುವಾಗ, ಅದನ್ನು ಕಡಿಮೆ ನಿರ್ಬಂಧಿತ ಪ್ರವೇಶ ಮಾರ್ಪಾಡುಗಳೊಂದಿಗೆ ವ್ಯಾಖ್ಯಾನಿಸಬೇಕು. ಉದಾಹರಣೆಗೆ, ಮೂಲ ವರ್ಗವು ಹೊಂದಿರುವ ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ಹೊಂದಿದ್ದರೆ ರಕ್ಷಣೆ ಪ್ರವೇಶ ಪರಿವರ್ತಕ. ಆದ್ದರಿಂದ, ಮಕ್ಕಳ ವರ್ಗವು ಈ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದಾಗ, ಅದು ತನ್ನ ಪ್ರವೇಶ ಪರಿವರ್ತಕವನ್ನು ಇಟ್ಟುಕೊಳ್ಳಬೇಕು ರಕ್ಷಣೆ or ಸಾರ್ವಜನಿಕ. ಇದನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಖಾಸಗಿ, ಏಕೆಂದರೆ ಇದು ಸಂರಕ್ಷಿತಕ್ಕಿಂತ ಹೆಚ್ಚು ನಿರ್ಬಂಧಿತವಾಗಿದೆ.
  • ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮಕ್ಕಳ ವರ್ಗವು ಮೂಲ ಅಮೂರ್ತ ವರ್ಗದಲ್ಲಿನ ಘೋಷಣೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಾನ ಸಂಖ್ಯೆಯ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ರವಾನಿಸಬೇಕು. ಆದಾಗ್ಯೂ, ಮಕ್ಕಳ ವರ್ಗವು ಅಗತ್ಯಕ್ಕಿಂತ ಬೇರೆ ಐಚ್ಛಿಕ/ಹೆಚ್ಚುವರಿ ವಾದಗಳನ್ನು ಹೊಂದಬಹುದು.

PHP ನಲ್ಲಿ ಅಮೂರ್ತ ವರ್ಗದ ಉದಾಹರಣೆ

<?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract public function introduction() : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro() : string {
    return "I am $this->name!";
  }
}

class Suzuki extends Bike {
  public function introduction() : string {
    return "I am $this->name!";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();

?>

ಮೇಲಿನ ಉದಾಹರಣೆಯ ವಿವರಣೆ

  • ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು ಅಮೂರ್ತ ವರ್ಗವನ್ನು ರಚಿಸುತ್ತೇವೆ ಬೈಕ್ ಅದು ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ಒಳಗೊಂಡಿದೆ ಪರಿಚಯ.
  • ನಾವು ಎರಡು ಮಕ್ಕಳ ತರಗತಿಗಳನ್ನು ರಚಿಸುತ್ತೇವೆ ಹೋಂಡಾ ಮತ್ತು ಸುಜುಕಿ ಅದು ಅಮೂರ್ತ ವರ್ಗವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು ಪರಿಚಯ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ.
  • ನಾವು ಈ ವರ್ಗಗಳ ವಸ್ತುಗಳನ್ನು ರಚಿಸುತ್ತೇವೆ ಮತ್ತು ಅವುಗಳ ವಸ್ತುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿಚಯ ವಿಧಾನವನ್ನು ಕರೆಯುತ್ತೇವೆ. ಪರಿಚಯದ ವಿಧಾನವು ಅದರ ಅನುಗುಣವಾದ ವರ್ಗದಿಂದ ನೀಡಲಾದ ಅನುಷ್ಠಾನದ ಪ್ರಕಾರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ವಿಧಾನದ ಅತಿಕ್ರಮಣದಲ್ಲಿ ಹೆಚ್ಚುವರಿ ವಾದಗಳೊಂದಿಗೆ ಅಮೂರ್ತ ವರ್ಗದ ಉದಾಹರಣೆ



<?php
// Parent abstract class
abstract class Bike {
  public $name;
  public function __construct($name) {
    $this->name = $name;
  }
  abstract protected function introduction($model) : string;
}

// Child classes defining the parent classes
class Honda extends Bike {
  public function intro($model) : string {
    return "I am $this->name. My model is $model";
  }
}

class Suzuki extends Bike {
  public function introduction($model, $color=null) : string {
    return "I am $this->name. My model is $model and color is $color";
  }
}

// Objects from child classes
$honda = new honda("Honda");
echo $honda->introduction();

$suzuki= new suzuki("Suzuki");
echo $suzuki->introduction();
?>

ಮೇಲಿನ ಉದಾಹರಣೆಯ ವಿವರಣೆ

  • ಮೇಲಿನ ಉದಾಹರಣೆಯ ಮೂಲ ತರ್ಕವು ಹಿಂದಿನ ಉದಾಹರಣೆಯಂತೆಯೇ ಇದೆ. ಆದಾಗ್ಯೂ, ಪರಿಚಯದ ವಿಧಾನದಲ್ಲಿ ನಾವು ಕಾರ್ಯಕ್ಕೆ ಹೆಚ್ಚುವರಿ ವಾದವನ್ನು ರವಾನಿಸುತ್ತೇವೆ ಸುಜುಕಿ ವರ್ಗ.
  • ಈ ಟ್ಯುಟೋರಿಯಲ್‌ನಲ್ಲಿ ನಾವು ಮೊದಲೇ ನಿಯಮವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದಂತೆ, ಪೋಷಕ ವರ್ಗದ ಅಮೂರ್ತ ವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಮಕ್ಕಳ ವರ್ಗದ ಪ್ರವೇಶ ಪರಿವರ್ತಕವು ಈ ವಿಧಾನದ ಘೋಷಣೆಗಾಗಿ ಪೋಷಕ ವರ್ಗದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದಕ್ಕಿಂತ ಕಡಿಮೆಯಿರಬೇಕು. ಆದ್ದರಿಂದ, ಎರಡೂ ಮಕ್ಕಳ ವರ್ಗಗಳು ಪರಿಚಯ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಾರ್ವಜನಿಕ ಪ್ರವೇಶ ಮಾರ್ಪಾಡುಗಳನ್ನು ಬಳಸುತ್ತವೆ.
  • ಖಾಸಗಿ ಪ್ರವೇಶ ಪರಿವರ್ತಕದೊಂದಿಗೆ ಕಾರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಪ್ರಯತ್ನಿಸಿ, ಅದು ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.

ಗಮನಿಸಿ: ಅಮೂರ್ತ ವರ್ಗವು ಯಾವುದೇ ಕನ್‌ಸ್ಟ್ರಕ್ಟರ್ ವಿಧಾನವನ್ನು ಹೊಂದಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಾವು ಅಮೂರ್ತ ವರ್ಗದ ಉದಾಹರಣೆಯನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

ವರ್ಗ ಅಮೂರ್ತತೆ PHP 8 ಅಧಿಕೃತ ದಾಖಲಾತಿ.

ಅಭಿಪ್ರಾಯ ಸೇರಿಸು

ಟ್ಯೂಟರ್ ನೆಟ್ವರ್ಕ್

A ನಿಂದ Z ವರೆಗೆ PHP ಕಲಿಯಿರಿ