/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 018 オブジェクト指向の深化(ポリモーフィズムの応用) 011 解答例 | Javaドリル

018 オブジェクト指向の深化(ポリモーフィズムの応用) 011 解答例

018-011 018 オブジェクト指向の深化
// 抽象クラス LibraryResource
abstract class LibraryResource {
    private boolean checkedOut;

    // コンストラクタ
    public LibraryResource() {
        this.checkedOut = false;
    }

    // checkOut メソッド
    public void checkOut() {
        if (!checkedOut) {
            checkedOut = true;
            System.out.println("Resource checked out successfully.");
        } else {
            System.out.println("Resource is already checked out.");
        }
    }
}

// Book クラス
class Book extends LibraryResource {
    private String title;

    // コンストラクタ
    public Book(String title) {
        this.title = title;
    }

    // オーバーライドされたメソッド
    @Override
    public void checkOut() {
        super.checkOut();
        System.out.println("Book title: " + title);
    }
}

// Magazine クラス
class Magazine extends LibraryResource {
    private String name;

    // コンストラクタ
    public Magazine(String name) {
        this.name = name;
    }

    // オーバーライドされたメソッド
    @Override
    public void checkOut() {
        super.checkOut();
        System.out.println("Magazine name: " + name);
    }
}

// Main クラス
public class Main {
    public static void main(String[] args) {
        // 異なる資料のインスタンスを生成
        LibraryResource book = new Book("Java Programming");
        LibraryResource magazine = new Magazine("Science Today");

        // 資料を貸し出しし、結果を表示
        System.out.println("Checking out a book:");
        book.checkOut();

        System.out.println("\nChecking out a magazine:");
        magazine.checkOut();
    }
}

このプログラムでは、LibraryResource 抽象クラスを作成し、Book クラスと Magazine クラスがそれを継承しています。checkOut メソッドがオーバーライドされ、main メソッドで異なる資料が貸し出されるときの挙動が表示されます。

「018 オブジェクト指向の深化」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

コメント

タイトルとURLをコピーしました