1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.27.1
Copyright (c) 1998-2006 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
|