// DatabaseConnectionクラス
public class DatabaseConnection {
// final修飾子を持つconnectメソッド
public final void connect() {
System.out.println("データベースへの接続を確立します");
}
}
// Subclassクラス(DatabaseConnectionクラスを継承したサブクラス)
public class Subclass extends DatabaseConnection {
// 以下のコードでエラーが発生します
// サブクラスでfinal修飾子を持つメソッドをオーバーライドしようとしているため
// エラー: connect() in Subclass cannot override connect() in DatabaseConnection
// overridden method is final
// @Override
// public void connect() {
// // 新しい接続手法を追加しようとしても、final修飾子があるためエラーが発生
// System.out.println("新しい接続手法");
// }
}この例では、DatabaseConnectionクラスにfinal修飾子を持つconnectメソッドがあります。そして、そのクラスを継承したSubclassクラスでconnectメソッドをオーバーライドしようとしています。しかし、connectメソッドがfinal修飾子を持つため、サブクラスでのオーバーライドが制限され、エラーが発生します。


