This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/inheritance/classes.lgt
pmoura 3455276aa2 Logtalk 2.26.2 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1487 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2005-12-24 18:07:41 +00:00

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.