Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have Java code that I created an Asset Class in. I now need to extend it and c

ID: 3775772 • Letter: I

Question

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.

Explanation / Answer

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);