忍者ブログ

学習用

2025
04,28

«[PR]»

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2020
07,14
//抽象クラス(抽象するクラスは具象クラスと言ったりする
//以下のクラスを継承するためにはabstractというきーわーぢをつけてあげればOK
abstract class User {
//sayHi()メソッドにもabstractをつけてあげると具象クラスの方で
//実装されなかった場合にエラーを返してくれます。
//このように具象クラスの方に実装を任せるメソッドを抽象メソッドと呼ぶ。
  public abstract void sayHi()
}
 class JapaneseUser extends User{
//sayHiメソッドをオーバーライドしているのがわかりやすいように
//アノテーションをかく!!
@Override
public void sayHi(){
System.out.println("こんにちは");
}
}
 class AmerivanUser extends User{
//ここではsayHi()を実装しなかった場合にちゃんとエラーになるかも
//確かめてみるためにコメントアウトにしておきます!
//@Override
//public void sayHi(){
//System.out.println("こんにちは");
}
}
  public final void sayHi() {
    System.out.println("hi! " + this.name);
  }
}
class AdminUser extends User {
  public AdminUser(String name) {
    super(name);
  }
  @Override
  public void sayHi() {
    System.out.println("[admin] hi! " + this.name);
  }
}
public class MyApp {
  public static void main(String[] args) {
    User tom = new User("tom");
  }
}


実行結果は↓

C:\Users\81801>javac -encoding utf-8 MyApp.java
MyApp.java:17: エラー: final Userからは継承できません
class AdminUser extends User {
                        ^
MyApp.java:9: エラー: final変数VERSIONに値を代入することはできません
    User.VERSION = 1.2;
        ^
MyApp.java:24: エラー: AdminUserのsayHi()はUserのsayHi()をオーバーライドできません
  public void sayHi() {
              ^
  オーバーライドされたメソッドはfinalです
エラー3個
C:\Users\81801>




PR
Post your Comment
Name:
Title:
Mail:
URL:
Color:
Comment:
pass: emoji:Vodafone絵文字 i-mode絵文字 Ezweb絵文字

[35] [34] [33] [32] [30] [29] [28] [27] [26] [25] [24]


« 抽象クラス_abstract_2: HOME : final_1 »
プロフィール
HN:
No Name Ninja
性別:
非公開
カテゴリー
最新記事
P R

Powered by Ninja.blog * TemplateDesign by TMP
忍者ブログ[PR]