I have Java code that I created an Asset Class in I now need
I have Java code that I created an Asset Class in. I now need to extend it and create a few derivative classes. Each of those new classes has to be declared as extending the base Asset class and introduce new attributes and methods. For example...
Router
 String application; // one from the following list \"Home\", \"Core\", \"Infrastructure\", etc
 int numOfNICs; // number of network interfaces
 String OS; // operating system. including vendor, version, and other details
 boolean hasConsole; // flag that indicates presence of management console
Here is my previous code:
public static void main(String[] args) {
 // List of company assets
 Asset assetList[]=new Asset[7];
 
 //assetList0 Server
 assetList[0]=new Asset();
 assetList[0].setType(\"Server\");
 assetList[0].setId(0);
 assetList[0].setName(\"IBM Blade Center Hs22\");
 assetList[0].setSerial(\"CNU37569\");
 assetList[0].setPid(-1);
 
 //assetList1 Switch
 assetList[1]=new Asset();
 assetList[1].setType(\"Switch\");
 assetList[1].setId(1);
 assetList[1].setName(\"Cisco Catalyst 2960G\");
 assetList[1].setSerial(\"WY752059\");
 assetList[1].setPid(0);
 
 //assetList2 PSU1
 assetList[2]=new Asset();
 assetList[2].setType(\"PSU1\");
 assetList[2].setId(2);
 assetList[2].setName(\"IBM 39Y7408 2900 Watt PSU\");
 assetList[2].setSerial(\"JWI69839\");
 assetList[2].setPid(0);
 
 //assetList3 PSU2
 assetList[3]=new Asset();
 assetList[3].setType(\"PSU2\");
 assetList[3].setId(3);
 assetList[3].setName(\"IBM 39Y7408 2900 Watt PSU\");
 assetList[3].setSerial(\"JWI29849\");
 assetList[3].setPid(0);
 
 //assetList4 NIC1
 assetList[4]=new Asset();
 assetList[4].setType(\"NIC1\");
 assetList[4].setId(4);
 assetList[4].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
 assetList[4].setSerial(\"LWK76246\");
 assetList[4].setPid(1);
 
 //assetList5 Nic2
 assetList[5]=new Asset();
 assetList[5].setType(\"NIC2\");
 assetList[5].setId(5);
 assetList[5].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
 assetList[5].setSerial(\"LWK98352\");
 assetList[5].setPid(1);
 
 //assetList6 Nic3
 assetList[6]=new Asset();
 assetList[6].setType(\"NIC3\");
 assetList[6].setId(6);
 assetList[6].setName(\"Cisco EHWIC-4ESG 4 Port NIC\");
 assetList[6].setSerial(\"LWK56209\");
 assetList[6].setPid(1);
 
 for (Asset asset : assetList) {
 System.out.println(asset);
 }
 }
 }
class Asset
 {
 //instance variables of asset
 String type;
 int id;
 String name;
 String serial;
 int pid;
   
 //default constructor
 Asset()
 {
 type=\"\";
 id=0;
 name=\"\";
 serial=\"\";
 pid=0;
 }
//getters & setters
 public void setType(String a)
 {
 type=a;
 }
 public String getType()
 {
 return type;
 }
 
   
   
 public void setId(int id)
 {
 this.id=id;
 }
 public int getId()
 {
 return id;
 }
   
   
   
 public void setName(String n)
 {
 name=n;
 }
 public String getName()
 {
 return name;
 }
   
   
   
 public void setSerial(String s)
 {
 serial=s;
 }
 public String getSerial()
 {
 return serial;
 }
   
   
   
 public void setPid(int pid)
 {
 this.pid=pid;
 }
 public int getPid()
 {
 return pid;
 }
   
   
 //toString() of asset
 @Override
 public String toString()
 {
 return \"\ \  Type: \" + getType() + \" \  ID: \" + getId() + \" \  Name: \" + getName() + \" \  Serial: \" + getSerial() + \" \  PID: \" + getPid() + \" \ \";
 }
 }
Can someone give me an example of how to create the derivative class for the router? I just need to understand how to setup the code so I can do it for all assets.
Solution
You can do it as under:
class Router extends Asset {
String application; // one from the following list \"Home\", \"Core\", \"Infrastructure\", etc
 int numOfNICs; // number of network interfaces
 String OS; // operating system. including vendor, version, and other details
 boolean hasConsole; // flag that indicates presence of management console
//Create constructor as per your need
//don\'t forget to call super() in the constructor
//getters, setters and toString() as per your need
}
Further, you could create an asset of type router as say (at index 6)
assetList[6]=new Router();
 assetList[6].setType(\"Some Type\");
 assetList[6].setId(6);
 assetList[6].setName(\"Cisco Router\");
 assetList[6].setSerial(\"ABC876\");
 assetList[6].setPid(2);
assetList[6].setApplication(\"Home\");
assetList[6].setNumOfNICs(4);
 assetList[6].setOS(\"Linux\");
 assetList[6].setHasConsole(false);




