[英]How to use two constructors in the same 2D array? Java
我想使用兩個構造函數來區分同一數組中的兩種類型的對象,盡管“類型不匹配”。 所以我知道我必須以不同的方式聲明數組,但我不確定該怎么做。
對於數組中的前三個地方,我想使用“飛行員”類,而對於其他地方,則要使用“旅客”類。
public class Project_Space
{
public static void main(String[] args)
{
// 2D Array of Passengers objects- the Passengers class is in the Passengers.java file
//Pilot objects are constructed from Pilots.java file
Passengers[][] Members ;
int num_flights= 6; //create the "x" bound/size of the array
int num_passengers= 9; //create the "y" bound/size of the array
Members = new Passengers[num_flights][num_passengers]; //define the size of the array 6flights/9Passengers
//The Members array at index 0 is the first flight
//Members[0][0] = new Pilots(1,-1,"","","",0); //This spot in the array is for the Flight number in the first spot. Everything else are place holders for data that doesn't pertain to the company
Members[0][1] = new Pilots(1,"1877963200","Amadeus","Durrutti","Buckminster Cornwallis","1288211435", 11); //This spot in the array is for the first passenger of flight #1
Members[0][2] = new Pilots(2,"6054350085","Sirius","Sassafrass","Ali Bababa","1776812631", 9);
Members[0][3] = new Passengers(1,"7065253333","Amy","Hartman","Betty Sue","7708889999", 3, 50000,"0554055405540554");
Members[0][4] = new Passengers(2,"7545251337","Amanda","Zion","Beatrice Twix","7448656577", 4, 2000,"0554055405541111");
Members[0][5] = new Passengers(3,"8904448899","Janet","Graves","Neal Wade","4445556666", 5, 3000, "9031029266161432");
Members[0][6] = new Passengers(4,"8902234567","Kristen","Pickering","Christopher Soto","5685461208", 6, 51500, "0985028135114275");
Members[0][7] = new Passengers(5,"5000893778","Julianna","Estrada","Jill Hansen","2770779833", 7, 0, "0213595590286251");
Members[0][8] = new Passengers(6,"2080670437","Regena","Mckenzie","Vicki Cook","6224215759", 8, 250, "8204699533830238");
這是OOP的一個很好的例子。
如果飛行員和乘客都是相同基類的子類,則可以正常工作。 例如,兩個類都可能包含相似的字段,例如name和id。
用這些字段和兩個類都包含的任何其他公共方法聲明基類Person。 然后,您將可以將該數組聲明為Person[][] Members;
public class Person {
String firstName,lastName;
int id;
//constructors, getter and setter methods
}
然后,乘客和飛行員都可以像這樣從Person繼承:
public class Pilot extends Person {
int totalHoursLogged;
String airline;
int salary;
//constructors and methods that differentiate Pilots from Passengers.
}
創建Object
類的數組或為Pilots
和Passengers
定義父類,然后創建您的超類的數組。 您將能夠將任何子類對象添加到父類數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.