Dziedziczenie - wersja prosta

 

Zoo wersja prosta:

- nadklasa (superclass) Animal oraz klasy dziedziczące (subclasses) Snake i Bird

- z setterami i getterami oraz statycznym atrybutem snakesCount.

 

Przykład programu, w którym używana jest technika dziedziczenia klasy Snake od nadklasy Animal

public class Zoo {

	public static void main( String[] argumenty ) {
		System.out.println("_________________________________________________");

		Snake snake1 = new Snake();
		Snake snake2 = new Snake( "Boa" );
		Snake snake3 = new Snake( "Mamba", 220 );

		snake1.setName( "Anaconda" );
		snake1.setSnakeLength( 500 );

		snake2.setSnakeLength( 70 );

		snake1.move();
		snake2.crawl( 100 );
		snake3.move();

		System.out.println("Snakes count int the Zoo: " + Snake.getSnakesCount() );		

		System.out.println("_________________________________________________");
	}

}

 

public class Animal {
	private String name;

	public void setName( String name ){
		this.name = name;
	}

	public String getName(){
		return name;
	}

	public void move() {
		System.out.println( "Animal name: " + getName() + " - MOVED" );
	}
	
}
public class Snake extends Animal {
	private static int snakesCount;

	private int id;
	private int snakeLength;


	public Snake(){
		this( "???", -1 );
	}

	public Snake( String name ){
		this( name, -1 );
	}

	public Snake( String name, int length ){
		incSnakesCount();
		setSnakeId( getSnakesCount() );
		setName( name );
		setSnakeLength( length );
	}




	public static int getSnakesCount() {
		return snakesCount;
	}

	private void incSnakesCount() {
		++snakesCount;
	}



	public void setSnakeId( int id ){
		this.id = id;
	}

	
	public int getSnakeId(){
		return id;
	}


	public void setSnakeLength( int length ){
		snakeLength = length;
	}


	public int getSnakeLength(){
		return snakeLength;
	}

       @Override
	public void move() {
		crawl();
	}


	public void crawl() {
		this.crawl( -1 );
	}


	public void crawl( int distance ) {
		System.out.print( "Snake no " + getSnakeId() + " - name: " + getName() + " - length: ");

		if( getSnakeLength() >= 0  )
			System.out.print( getSnakeLength() + " cm" );
		else 
			System.out.print( "???" );
		
		System.out.print( " - crawls" );

		if( distance >= 0  )
			System.out.print( " " + distance + " m" );

		System.out.println( "." );
	}

}