80c28e1507
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1357 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
134 lines
1.9 KiB
Plaintext
134 lines
1.9 KiB
Plaintext
=================================================================
|
|
Logtalk - Object oriented extension to Prolog
|
|
Release 2.25.1
|
|
|
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
|
=================================================================
|
|
|
|
|
|
% start by loading the example:
|
|
|
|
| ?- logtalk_load(inheritance(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
|