スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【SJC-P】オーバーライドとオーバーロード【Java】

オーバーライドとは、スーパークラスで定義されたメソッドをサブクラスで上書きして
 スーパークラスとは別の動きをさせること。
 要は、サブクラスに特化した機能を入れたい時に使ったりする。

オーバーロードとは、多重定義で、同一のメソッド名で、複数の動作パターンを作成する。

<こんな感じ>

class Test{
public static void main(String [] args){
Hoge h = new Hoge();
h.hoge();
}
}

class Hoge extends Foo{
void hoge(){
foo(); // オーバーライド
piyo();
piyo(5); // オーバーロード
}

// オーバーライド
void foo(){
System.out.println("hoge");
}

// オーバーロード
void piyo(int x){
System.out.println(x);
}
}

class Foo{
void foo(){
System.out.println("foo");
}

void piyo(){
System.out.println("piyo");
}
}


<オーバーロード>オートボクシングよりも拡大変換が優先され、var-argよりもboxingのが優先される。

class Test{
static void foo(double x){System.out.println("拡大変換-double");}
static void foo(Integer x){System.out.println("boxing");}
static void foo(long x){System.out.println("拡大変換-long");}
static void foo(Byte x,Byte y){System.out.println("boxing");}
static void foo(byte... x){System.out.println("可変長引数");}
public static void main(String [] args){
float f = 5.0f;
int i = 5;
byte b = 5;
foo(f);
foo(i);
foo(b,b);
}
}

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメント

非公開コメント

プロフィール

yukinosakura

Author:yukinosakura
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。