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( "." );
}
}