このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/572
#  【 課題 】http://ime.nu/www.ailab.tj.chiba-u.jp/~hory/java2010/ 
#        11月16日のページの一番下の方の演習問題です。 
#  【 形態 】プログラムはメモ帳などに書いて.javaで保存し、 
#        コマンドプロンプトのjavac,javaのコマンドで実行 
#  【 期限 】11月29日中までに解答いただきたいです。 
#  【 補足 】問題文のところにすべて書いてあると思いますので特になしです。 
#        形態というのがよくわからなかったので、やっている実行の仕方を 
#        書きました。 
#  演習問題
#   以下の知識をJavaプログラムで記述せよ。クラスの継承、オーバーライドを利用すること。
#   (デフォルトの知識を継承して、子クラスでは親クラスと異なる知識のみを記述する) 
#   知識 
#  ・動物は4本足である
#  ・動物は飛ばない
#  ・ヒトは動物である
#  ・ヒトは2本足である
#  ・ヒトは飛ばない
#  ・犬は動物である
#  ・犬は4本足である
#  ・犬は飛ばない
#  ・鳥は動物である
#  ・鳥は2本足である
#  ・鳥は飛ぶ
#  ・カナリアは鳥である
#  ・カナリアは2本足である
#  ・カナリアは飛ぶ
#  ・ペンギンは鳥である
#  ・ペンギンは2本足である
#  ・ペンギンは飛ばない
#  

class ヒト has
nature 動物;
instance
        :足を持つ(_ヒト,2);
end.

class 動物 has
instance
        :足を持つ(_動物,4);
        :飛ばない(_動物);
        :飛ぶ(_動物) :- fail;
end.

class 犬 has
nature 動物;
end.

class 鳥 has
nature 動物;
instance
        :足を持つ(_鳥,2);
        :飛ぶ(_鳥);
        :飛ばない(_鳥) :- fail;
end.

class カナリア has
nature 鳥;
end.

class ペンギン has
nature 鳥;
instance
        :飛ぶ(_ペンギン) :- fail;
        :飛ばない(_ペンギン);
end.