O que vi acontecer no exemplo que irei passar talvez ocorra em outros Ides segue código:
Classe conta:
<?php
class conta
{
public $agencia;
public $codigo;
public $dataCriacao;
public $titular;
public $senha;
public $saldo;
public $cancelada;
function __construct($agencia,$codigo,$dataCriacao,$titular,$senha,$saldo,$cancelada)
{
$this->agencia = $agencia;
$this->codigo = $codigo;
$this->dataCriacao = $dataCriacao;
$this->titular=$titular;
$this->senha=$senha;
$this->depositar($saldo);
$this->cancelada =false;
}
/*
* Método Retirar Saldo em quantia
*/
public function retirar($quantia)
{
if ($quantia > 0) {
$this->saldo -= $quantia;
}
}
/*
* Método depositar
*/
public function depositar($quantia)
{
if ($quantia > 0) {
$this->saldo += $quantia;
}
}
/*
* Obter Saldo
*/
public function obterSaldo()
{
return $this->saldo;
}
}
Classe contaPoupanca:
<?php
class contaPoupanca extends conta
{
public $aniversario;
function __construct($agencia, $codigo, $dataCriacao, $titular, $senha, $saldo, $cancelada, $aniversario)
{
parent::__construct($agencia, $codigo, $dataCriacao, $titular, $senha, $saldo, $cancelada);
$this->aniversario = $aniversario;
}
function retirar($quantia)
{
if ($this->saldo >= $quantia) {
parent::retirar($quantia); // TODO: Change the autogenerated stub
} else {
echo "retirada Não permitida";
}
return true;
}
}
Classe contaCorrente:
<?php
class contaCorrente extends conta
{
public $limite;
function __construct($agencia, $codigo, $dataCriacao, $titular, $senha, $saldo, $cancelada,$limite)
{
parent::__construct($agencia, $codigo, $dataCriacao, $titular, $senha, $saldo, $cancelada);
$this->limite = $limite;
}
function retirar($quantia)
{
$cpmf = 0.05;
if($this->saldo + $this->limite>= $quantia){
parent::retirar($quantia); // TODO: Change the autogenerated stub
parent::retirar($quantia *$cpmf);
}else{
echo "Retirada não permitida";
}
return true;
}
}
Objeto:
<?php
include 'classes/conta.php';
include 'classes/contaPoupanca.php';
include 'classes/contaCorrente.php';
$contaAnderson = new conta('12321','2121','01/11/2019','Anderson Santos','A1.camila321',
'2000','false');
$contaAndersonPoupanca = new contaPoupanca('1221','2121','01/11/2019','Anderson Santoz',
'A1.camila321','2000','false','01/11/2019');
$corrente = new contaCorrente('');
O detalhe é o seguinte quando criei objetos para as Classes "conta e contaPoupança", minha Ide de forma fantástica já puxa as propriedades automáticamente, porém quando vou instanciar o Objeto corrente da classe contaCorrente, a Ide não puxa de maneira nenhuma as propriedades, e como pode ser observado a classe contaCorrente está corretamente exetendo da Classe Mãe conta, não sei onde não estou vendo o problema.