git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1260 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.23.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
 |