Inheritance snippet – Vehicle (Java)

//******************* Vehicle.java *******************    public class Vehicle {  	private String PNo;  	private int CNo;  	  	Vehicle(){  		System.out.println("Vehicle() ");  		PNo = "NA";  		CNo = 0;  	}  	  	Vehicle(String PNo, int CNo){  		System.out.println("Vehicle( String, int ) ");  		this.PNo = PNo;  		this.CNo = CNo;  	}  	  	public String getPNo(){  		return this.PNo;  	}  	  	public void setPNo(String PNo){  		this.PNo = PNo;  	}  	  	public int getCNo(){  		return this.CNo;  	}  	  	public void setCNo(int CNo){  		this.CNo = CNo;  	}  	  	  	  }      //******************* Car.java *******************    public class Car extends Vehicle{    	private int type;  	private String color;  	  	Car(){  		System.out.println(" Car() ");  		type = 0;  		color = "NA";  	}  	  	Car(String PNo, int CNo, String color , int type){  		  		//This should be the first statement if we are overriding the default constructor to be called by base class.  		super( PNo,  CNo);  		  		System.out.println("Car( String, int, String, int )");  		//setPNo("MH12 1213");	//By doing this we are overwriting the default values of 0 which is being set by the default constructor of vehicle. So extra CPU cycles are invested  		//setCNo(12334);  		this.type = 2;  		this.color = "Black";  		  	}  	  	  	public int getType() {  		return type;  	}  	public void setType(int type) {  		this.type = type;  	}  	public String getColor() {  		return color;  	}  	public void setColor(String color) {  		this.color = color;  	}  	  	public void display(){  		//System.out.println("PNo     : " + PNo); This is invalid as it breaks encapsulation  		System.out.println("PNo    : " + getPNo() );  		System.out.println("CNo    : " + getCNo() );  		System.out.println("Color  : " + color );  		System.out.println("Type   : " + type );  		  		  	  	}  	  	  	  }      //******************* Main.java *******************    public class Main {    	public static void main( String [] args){  		Car c1 = new Car("MH12 233", 23445, "Red", 1);  		  		c1.display();  		  		/* Commented since we are using parameterized constructor  		c1.setPNo("MH12J3552");  		c1.setCNo(213432);  		c1.setColor("Red");  		c1.setType(2); //2 means diesel lol  		*/  		  		//Vehicle v1 = new Vehicle();		//There is no connection with c1. It is a different object  		  	  		  		  		//v1.setPNo("MH21");  		//v1.setCNo(9999);  		  		//Commented since we have display  		//print(c1); //since it is static we can directly call. Note: c1 is passed and not v1. We cannot pass v1. If it were Vehicle v in function's formal parameters. We could have passed c1 and v1 in print()  		  		System.out.println("------------------------");  		  		  		//c1.display();  	}  	  	public static void print( Car c ){  		System.out.println("PNo    : " + c.getPNo() );  		System.out.println("CNo    : " + c.getCNo());  	}  	  }

Output:

Vehicle( String, int )
Car( String, int, String, int )
PNo : MH12 233
CNo : 23445
Color : Black
Type : 2
————————

View Article Page
Download