mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 05:39:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
program test;
 | 
						|
 | 
						|
  type
 | 
						|
      obj1 = object
 | 
						|
        st2 : string;
 | 
						|
        constructor init;
 | 
						|
        procedure writeit;
 | 
						|
        procedure writeit(st : string);virtual;
 | 
						|
      end;
 | 
						|
 | 
						|
      obj2 = object(obj1)
 | 
						|
        procedure writeit;virtual;
 | 
						|
      end;
 | 
						|
 | 
						|
      obj3 = object(obj2)
 | 
						|
        l2 : longint;
 | 
						|
        procedure writeit(l : longint);virtual;
 | 
						|
        procedure writeit(st : string);virtual;
 | 
						|
      end;
 | 
						|
      
 | 
						|
      obj4 = object(obj3)
 | 
						|
        procedure writeit;virtual;
 | 
						|
        procedure writeit(st : string);virtual;
 | 
						|
      end;
 | 
						|
      
 | 
						|
      obj5 = object(obj4)
 | 
						|
        procedure writeit;virtual;
 | 
						|
        procedure writeit(st : string);
 | 
						|
        procedure writeit(l : longint);virtual;
 | 
						|
      end;
 | 
						|
      
 | 
						|
      constructor obj1.init;
 | 
						|
        begin
 | 
						|
        end;
 | 
						|
 | 
						|
      procedure obj1.writeit;
 | 
						|
        begin
 | 
						|
          Writeln('Obj1 writeit');
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj1.writeit(st : string);
 | 
						|
        begin
 | 
						|
          Writeln('Obj1 writeit(string) ',st);
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj2.writeit;
 | 
						|
        begin
 | 
						|
          Writeln('Obj2 writeit');
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj3.writeit(st : string);
 | 
						|
        begin
 | 
						|
          Writeln('Obj3 writeit(string) ',st);
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj3.writeit(l : longint);
 | 
						|
        begin
 | 
						|
          Writeln('Obj2 writeit(longint) ',l);
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj4.writeit;
 | 
						|
        begin
 | 
						|
          Writeln('Obj4 writeit');
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj4.writeit(st : string);
 | 
						|
        begin
 | 
						|
          Writeln('Obj4 writeit(string) ',st);
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj5.writeit;
 | 
						|
        begin
 | 
						|
          Writeln('Obj5 writeit');
 | 
						|
        end;
 | 
						|
        
 | 
						|
      procedure obj5.writeit(st : string);
 | 
						|
        begin
 | 
						|
          Writeln('Obj5 writeit(string) ',st);
 | 
						|
        end;
 | 
						|
 | 
						|
      procedure obj5.writeit(l : longint);
 | 
						|
        begin
 | 
						|
          Writeln('Obj5 writeit(longint) ',l);
 | 
						|
        end;
 | 
						|
        
 | 
						|
var
 | 
						|
  o1 : obj1;
 | 
						|
  o2 : obj2;
 | 
						|
  o3 : obj3;
 | 
						|
  o4 : obj4;
 | 
						|
  o5 : obj5;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
begin
 | 
						|
  o1.init;
 | 
						|
  o1.writeit;
 | 
						|
  o1.writeit('o1');
 | 
						|
  o2.init;
 | 
						|
  o2.writeit;
 | 
						|
  o2.writeit('o2');
 | 
						|
  o3.init;
 | 
						|
  o3.writeit;
 | 
						|
  o3.writeit('o3');
 | 
						|
  o3.writeit(3);
 | 
						|
  o4.init;
 | 
						|
  o4.writeit;
 | 
						|
  o4.writeit('o4');
 | 
						|
  o4.writeit(4);
 | 
						|
  o5.init;
 | 
						|
  o5.writeit;
 | 
						|
  o5.writeit('o5');
 | 
						|
  o5.writeit(5);
 | 
						|
end.
 |