タグ

継承に関するakira1908jpのブックマーク (2)

  • PHP7でクラスはバラバラになった

    PHP7では無名クラスが導入されます。 PHP7調査(26)無名クラスの導入 - Qiita これ、単に構文だけの話にせず、「クラスの第3の能力が単独で切り出された」と捉えると面白いのかなと思いました。 クラスが持つ3つの役割 クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー 「コーディングを支える技術」の西尾泰和氏によると、クラスには ユーザー定義型 実装の再利用の単位 インスタンス生成器 の3つの役割があるといいます。 クラスが扱いづらい概念だとすれば、それはこの3つの能力をまとめて持っているからです。 PHPのユーザー定義型、インターフェース PHPの場合、タイプヒントがありますし、定義したクラスは後から拡張することができません(オープンクラスではない)。 if ($obj instanceof FooClass) { //... } この「$objがFooClassのインスタ

    PHP7でクラスはバラバラになった
  • Javaの型システムとコンストラクタ - プログラマーの脳みそ

    今回はJavaの型システムのコンストラクタについて考えてみたい。 Javaの型システム、あるいはJavaのオブジェクト指向において、コンストラクタという存在は特殊な存在だ。 コンストラクタ内からはそのクラスのインスタンスフィールドにアクセスできる。これは通常のインスタンスメソッドと同等のスコープであってstaticメソッドのそれとは異なる。しかし、コンストラクタを呼び出すにあたってはインスタンスのメソッドという体ではなく、staticメソッドのように(インスタンスではなく)クラスに属するものとして呼び出すことになる。(もっともnewという専用のキーワードを用いるのでそうは見えないかもしれないが) クラスやinterface、つまりJavaの「型」によるポリモフィズムの世界を考えるとき、コンストラクタはのけものである。継承関係を持つクラスであってもコンストラクタは継承されないし、オーバーライ

    Javaの型システムとコンストラクタ - プログラマーの脳みそ
  • 1