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