Gå til innhold

Spørsmål om Class{} funksjoner


Anbefalte innlegg

Videoannonse
Annonse

Metoder deklarert som public kan kalles utenfor klassen, protected kan kalles innenfor klassen den er deklarert i samt i barn av klasse, mens private bare kan kalles i klassen den er deklarert.

 

<?php
class MyBasicClass
{
public function doSomethingSilly()
{
	$this->_doSomethingExtraordinary(); // Works
	$this->_doSomethingSmart(); // Works
}

protected function _doSomethingSmart() {}

private function _doSomethingExtraordinary() {}
}

class MyBasicChildClass extends MyBasicClass
{
public function growUp()
{
	$this->_doSomethingSmart(); // Works
	$this->_doSomethingExtraordinary(); // Does not work
}
}

$class = new MyBasicClass();
$class->doSomethingSilly(); // Works
$class->_doSomethingSmart(); // Does not work
$class->_doSomethingExtraordinary(); // Does not work

$child = new MyBasicChildClass();
$child->growUp();

Lenke til kommentar

Final, abstract, interface, static, protected, public og private er alle nøkkelord i OOP. (Husket jeg alle de vanligste?)

 

Noe som er satt til final kan ikke overskrives av f.eks. en klasse som extender fra den klassen. En funksjon eller klassen som er definert som final vil alltid være slik den er. Noe som er abstract, på den andre siden, kan ikke initialiseres og MÅ overskrives. Man pleier å si at noe som er abstract deklarerer en signatur, men ikke implementasjon. Et interface kan kanskje sees som en fully abstract klasse, der ingen implementasjon er definert. Noe som er statisk er tilgjengelig uten å at man trenger en instans av klassen.

 

Vil ikke kjøre:

<?php
abstract class Foo {}
$bar = new Foo ();
?>

Vil derimot kjøre:

<?php
interface Animal {
	public function Bark ();
}
class Dog implements Animal {
	public function Bark () {
		echo 'Woff Woff';
	}
}
$dog = new Dog ();
$dog -> Bark ();
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...