Estou recorrendo ao fórum pois tenho duas questões da faculdade em que eu e um colega estamos divergindo nas respostas. Se possível, gostaria da opinião de vocês sobre o assunto.
1) Por princípio, objetos polimorfos são objetos semelhantes que atuam de forma diferente. Para implementar tal princípio, é necessário usar uma referência a um objeto do tipo da superclasse (ponteiro ou endereço) e, a partir daí, o sistema pode decidir sobre qual método deve ser selecionado na execução do objeto, de acordo com o tipo da classe derivada, durante a execução.Qual o principal recurso do PHP orientado a objetos utilizamos para implementar polimorfismo?
Interface nomeDaClasse
implements nomeDaClasse --> colega ficou com esta
public, protected e private
abstract class nomeDaClasse --> fiquei com esta resposta
NomeDaClasse::metodo
2)A orientação a objetos no PHP permite a criação de classes com diversos recursos, como interfaces, implementações, abstrações e visibilidade. Um objeto passa a ser considerado objeto após ser instanciado em uma variável no PHP, com a utilização da sintaxe: $variável = new Classe(); por exemplo, ($carro = new Carro();). Porém, no PHP, é possível realizar uma chamada estática para um método ou propriedade de um objeto sem instanciá-lo.Qual das opções abaixo representa um exemplo de chamada estática do PHP para um método ou propriedade?
$carro->propriedade;
$carro->metodo(); --> fiquei com esta resposta
carro->propriedade;
Carro::propriedade; --> o colega com esta
carro->metodo();
Sobre esta questão 2, encontramos no manual o seguinte:
Exemplo #1 Exemplo de método estático
<?php class Foo {
public static function aStaticMethod() { // ... }
}
Foo::aStaticMethod(); $classname = 'Foo'; $classname::aStaticMethod(); // As of PHP 5.3.0 ?>
Exemplo #2 Exemplo de propriedade estática
<?php class Foo {
public static $meu_estatico = 'foo';
public function valorEstatico() {
return self::$meu_estatico;
}
}
class Bar extends Foo {
public function fooEstatico() {
return parent::$meu_estatico;
}
}
Pergunta
Bárbara Barbosa
Boa noite, colegas.
Sou nova por aqui.
Estou recorrendo ao fórum pois tenho duas questões da faculdade em que eu e um colega estamos divergindo nas respostas. Se possível, gostaria da opinião de vocês sobre o assunto.
1) Por princípio, objetos polimorfos são objetos semelhantes que atuam de forma diferente. Para implementar tal princípio, é necessário usar uma referência a um objeto do tipo da superclasse (ponteiro ou endereço) e, a partir daí, o sistema pode decidir sobre qual método deve ser selecionado na execução do objeto, de acordo com o tipo da classe derivada, durante a execução. Qual o principal recurso do PHP orientado a objetos utilizamos para implementar polimorfismo?
Interface nomeDaClasse
implements nomeDaClasse --> colega ficou com esta
public, protected e private
abstract class nomeDaClasse --> fiquei com esta resposta
NomeDaClasse::metodo
2)A orientação a objetos no PHP permite a criação de classes com diversos recursos, como interfaces, implementações, abstrações e visibilidade. Um objeto passa a ser considerado objeto após ser instanciado em uma variável no PHP, com a utilização da sintaxe: $variável = new Classe(); por exemplo, ($carro = new Carro();). Porém, no PHP, é possível realizar uma chamada estática para um método ou propriedade de um objeto sem instanciá-lo. Qual das opções abaixo representa um exemplo de chamada estática do PHP para um método ou propriedade?
$carro->propriedade;
$carro->metodo(); --> fiquei com esta resposta
carro->propriedade;
Carro::propriedade; --> o colega com esta
carro->metodo();
Sobre esta questão 2, encontramos no manual o seguinte:
Exemplo #1 Exemplo de método estático
<?php
class Foo {
public static function aStaticMethod() {
// ...
}
}
Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // As of PHP 5.3.0
?>
Exemplo #2 Exemplo de propriedade estática
<?php
class Foo
{
public static $meu_estatico = 'foo';
public function valorEstatico() {
return self::$meu_estatico;
}
}
class Bar extends Foo
{
public function fooEstatico() {
return parent::$meu_estatico;
}
}
print Foo::$meu_estatico . "\n";
$foo = new Foo();
print $foo->valorEstatico() . "\n";
print $foo->$meu_estatico . "\n"; // "Propriedade" Indefinida $meu_estatico
print $foo::$meu_estatico . "\n";
$classname = 'Foo';
print $classname::$meu_estatico . "\n"; // No PHP 5.3.0
print Bar::$meu_estatico . "\n";
$bar = new Bar();
print $bar->fooEstatico() . "\n";
?>
Galera imagino que devam ser questões tranquilas, ainda mais com o pouco q vi nos tópicos, mas somos novos com a linguagem.
Desde já agradeço a atenção e disponibilidade dos colegas.
Vlw!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.