72 lines
1.2 KiB
Plaintext
72 lines
1.2 KiB
Plaintext
|
/*
|
||
|
This source file defines the following class-based hierarchy:
|
||
|
|
||
|
root
|
||
|
subclass1
|
||
|
instance1
|
||
|
subclass2
|
||
|
instance2
|
||
|
subclass3
|
||
|
instance3
|
||
|
|
||
|
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(root,
|
||
|
imports(predicates, interface),
|
||
|
instantiates(root)).
|
||
|
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
% public inheritance:
|
||
|
% root predicates will be inherited without scope changes
|
||
|
:- object(subclass1,
|
||
|
imports(interface),
|
||
|
specializes(public::root)).
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
:- object(instance1,
|
||
|
instantiates(subclass1)).
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
% protected inheritance:
|
||
|
% root public predicates will be inherited as protected predicates
|
||
|
:- object(subclass2,
|
||
|
imports(interface),
|
||
|
specializes(protected::root)).
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
:- object(instance2,
|
||
|
instantiates(subclass2)).
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
% private inheritance:
|
||
|
% root predicates will be inherited as private predicates
|
||
|
:- object(subclass3,
|
||
|
imports(interface),
|
||
|
specializes(private::root)).
|
||
|
|
||
|
:- end_object.
|
||
|
|
||
|
|
||
|
:- object(instance3,
|
||
|
instantiates(subclass3)).
|
||
|
|
||
|
:- end_object.
|