Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

consulta sobre clases abstractas

Estas en el tema de consulta sobre clases abstractas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Holas... puedo tener una clase con métodos normales y abstractos es dxecir Código: clase { function metodo1(x) { echo "hola" } function &metodo2(y) { echo ...
  #1 (permalink)  
Antiguo 02/02/2010, 15:34
 
Fecha de Ingreso: agosto-2009
Mensajes: 52
Antigüedad: 14 años, 8 meses
Puntos: 0
Exclamación consulta sobre clases abstractas

Holas...

puedo tener una clase con métodos normales y abstractos es dxecir
Código:
clase  {

function metodo1(x) {
echo "hola"
}

function &metodo2(y) {
echo "hola 2"
}


}
o es que toda la clases debe ser abstracta y viceversa

gracias
  #2 (permalink)  
Antiguo 02/02/2010, 15:41
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: consulta sobre clases abstractas

Priemro que esste foro es de PHP, no de PHP OOP
Una clase abstracta se definde de la siguiente manera (muy rapidamente y salteandome varias cosas):
Código PHP:
abstract class Banco{

public 
$nombres;
public 
$saldo;
public 
$limite;

public function 
__construct(){}

public function 
depositar($cuanto){

    
$this->saldo += $cuanto;

}

public function 
retirar($cuanto){

    
$this->saldo -= $cuanto;
  
}

}

class 
CuentaCorriente extends Banco{

public 
$descubierto;

public function 
__construct(){

    
parent::__construct();
    
$this->descubierto 500;



Una clase abstracta es una clase de la cual no se puede instanciar un objeto directamente, es creada para ser heredada.

Fijate en el ejemplo que te puse, que de nada te serviria tener un objeto "Banco" por ahi dando vueltas, no tendria mucho sentido, en cambio si una cuenta corriente... Ademas, sireva para la reutilizacion de codigo (eso por la herencia), si tuviera otra clase "CajaDeAhorro" tambien heredaria de Banco

Tambien puedes tener metodos abstractos, por ejemplo en las interfaces, o dentro de alguna clase. Los cuales no llevaran su definicion en ese momento, sino que se les agregara luego, cuando sean implementados o heredados...
__________________
HV Studio
Diseño y desarrollo web

Última edición por jackson666; 02/02/2010 a las 15:50 Razón: mas completo =)
  #3 (permalink)  
Antiguo 02/02/2010, 15:59
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Tema movido a PHP OO
  #4 (permalink)  
Antiguo 04/02/2010, 07:05
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: consulta sobre clases abstractas

Cita:
Iniciado por Cristina_ Ver Mensaje
o es que toda la clases debe ser abstracta y viceversa

gracias
Puedes tener una clase abstracta y métodos no-abstractos, lo que logras es que la clase no puede instanciarse (usos: obligar que solo sirva de modelo para la herencia, o, usarla siempre ejecutándola como clase, sin instancia: Class::ejecutar()).

Puedes tener una clase "normal" con métodos abstractos, pero una vez que tienes un método abstracto, la clase pasa a ser abstracta.

Manual
http://ar2.php.net/manual/en/language.oop5.abstract.php

Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Etiquetas: clases
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:23.