================================================================= Logtalk - Object oriented extension to Prolog Release 2.21.3 Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. ================================================================= % start by loading the example: | ?- logtalk_load(loader). ... % parent interface | ?- parent::interface. public/0 - public protected/0 - protected private/0 - private interface/0 - public yes % prototype1 extends public::parent | ?- prototype1::interface. interface/0 - public public/0 - public protected/0 - protected yes % prototype2 extends protected::parent | ?- prototype2::interface. interface/0 - public public/0 - protected protected/0 - protected yes % prototype3 extends private::parent | ?- prototype3::interface. interface/0 - public public/0 - private protected/0 - private yes % descendant1 extends public::prototype1 | ?- descendant1::interface. interface/0 - public public/0 - public protected/0 - protected yes % descendant2 extends public::prototype2 | ?- descendant2::interface. interface/0 - public public/0 - protected protected/0 - protected yes % descendant3 extends public::prototype3 | ?- descendant3::interface. interface/0 - public yes % object (root of the inheritance graph) interface | ?- root::interface. public/0 - public protected/0 - protected private/0 - private interface/0 - public yes % instance1 instantiates subclass1 that specializes public::root | ?- instance1::interface. interface/0 - public public/0 - public protected/0 - protected yes % instance2 instantiates subclass2 that specializes protected::root | ?- instance2::interface. interface/0 - public public/0 - protected protected/0 - protected yes % instance3 instantiates subclass3 that specializes private::root | ?- instance3::interface. interface/0 - public public/0 - private protected/0 - private yes