Go言語のreflectパッケージを使った実行時メタプログラミング実践
実行時に型情報を扱うための3原則
インタフェース値 → reflect.Value / reflect.Type への変換が可能
reflect.Value / reflect.Type → インタフェース値 への復元が可能
reflect.Value で値を書き換えるには「アドレス可能」である必要がある
型システムとreflectの関係
Goでは変数は「静的型」と「実行時型(コンクリート型)」を持つ。
静的型はソースコード上で宣言 ...
7月20日 17:30 投稿
Java オブジェクト指向設計:抽象化とポリモーフィズムの徹底解説
抽象クラスと抽象メソッド
abstract キーワードは、クラスまたはメソッドに対して適用される修飾子です。このキーワードを使用して宣言されたものは、完全な定義を持たず、サブクラスによる実装を必要とします。
制約事項: final, static, private と同時に使用することはできません。また、抽象メソッドを直接実装した状態で定義されるため、オーバーライド(再定義)の ...
7月14日 00:54 投稿
C#における明示的インターフェース実装と継承の挙動解説
C#で複数のインターフェースを実装しつつ抽象クラスを継承する際、メソッド名が衝突するときの解決方法を整理します。
前提となる型定義
public interface ILeft
{
void Execute();
}
public interface IRight
{
void Execute();
}
public abstract class BaseRunner
{
public abstract void Execute();
}
パターン1:抽象クラスを継承+明示的実装を利用 ...
6月17日 16:10 投稿
Javaのオブジェクト指向プログラミング:継承・抽象クラス・インターフェース・ポリモーフィズム
継承
継承とは既存のクラス(スーパークラス)を基にして新しいクラス(サブクラス)を作成する仕組みです。サブクラスはスーパークラスのフィールドとメソッドを引き継ぎます。
class SuperClass {
// スーパークラスの内容
}
class SubClass extends SuperClass {
// サブクラスの内容
}
継承における注意点:
Javaでは単一継承のみサポートされ、多重継承は許 ...
5月16日 02:08 投稿