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
|
/*
This source file defines the following prototype-based hierarchy:
parent
prototype1
descendant1
prototype2
descendant2
prototype3
descendant3
The root object imports the category "predicates", which defines one
public predicate, public/0, one protected predicate, protected/0, and
one private predicate, private/0.
All objects import the category "interface", which defines a predicate,
interface/0, for listing the object interface.
*/
:- object(parent,
imports(predicates, interface)).
:- end_object.
% public inheritance:
% parent predicates will be inherited without scope changes
:- object(prototype1,
imports(interface),
extends(public::parent)).
:- end_object.
:- object(descendant1,
imports(interface),
extends(prototype1)).
:- end_object.
% protected inheritance:
% parent public predicates will be inherited as protected predicates
:- object(prototype2,
imports(interface),
extends(protected::parent)).
:- end_object.
:- object(descendant2,
imports(interface),
extends(prototype2)).
:- end_object.
% private inheritance:
% parent predicates will be inherited as private predicates
:- object(prototype3,
imports(interface),
extends(private::parent)).
:- end_object.
:- object(descendant3,
imports(interface),
extends(prototype3)).
:- end_object.
|