技術的には、正当な理由により、これを「外部」(パブリック インターフェイス) から行うことはできません。
理由を理解していて (または以下をお読みください)、実際に何をしているのかを知っている場合、実際に機能を提供しない理由はありません:
class User extends BaseUser {
...
function parentDelete(){
parent::delete();
}
...
}
user = new User();
$user->delete(); // will call the overridden delete
$user->parentDelete(); // want to call parent delete
ただし、これを行う場合は、何らかの形で継承を誤用していることを知っておく必要があります。これは例外的な状況に違いありません。実際にそれを行う必要がある状況はまったく想像できません。
そのため、なぜその機能が必要なのかを定式化して、より良い提案ができるようにしてください。
なぜそれが悪いのですか?
$user
非常に単純な理由から: ソフトウェアでは、 に親があるかどうかを知る必要はありません。これは、まったく気にする必要のない詳細です。
これにより、ソフトウェアにあるユーザーオブジェクトを後でユーザーの子オブジェクトに置き換えることができます。これは、時間の経過とともにソフトウェアを変更したい場合に重要です。
パブリック インターフェイスの内部の詳細部分を作成すると、柔軟性を維持する可能性が失われます。柔軟性がないというのは、本当に悪い状況です。