私は、Javaプログラムで複数のインタフェースを実装する方法を理解しようとしています。Javaで複数の継承を実装する
私のプログラムでは、3つのクラス(footballPlayer、student、person)を組み込んだ大学サッカー選手クラスを実装したいと考えています。
public class app {
public static void main(String[] args)
{
student st1 = new student("Zack","Mills",22);
System.out.println(st1.getAllInfo());
footballPlayer fp1 = new footballPlayer("Zack","Mills",22,5.9f, 240,"Junior","Running Back");
System.out.println(fp1.getAllInfo());
}
}
public class person {
//---------Declaring attributes----
private String firstName;
private String lastName;
private int age;
//------------------------------
//----------Constructor------------
person(String a, String b, int c)
{
firstName = a;
lastName = b;
age = c;
}
//---------- METHODS --------
String getInfo()
{
return "NAME = "+getFirstName()+ " "+getLastName()+" "+"Age = "+ getAge();
}
//------------------------------------------------
/**
* @return the firstName
*/
public String getFirstName() {
return firstName;
}
/**
* @param firstName the firstName to set
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
}
/**
* @return the lastName
*/
public String getLastName() {
return lastName;
}
/**
* @param lastName the lastName to set
*/
public void setLastName(String lastName) {
this.lastName = lastName;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
}
public class footballPlayer extends person {
//-----------FOOTBALL PLAYER ATTRIBUTES----------------------------
private float height;
private float weight;
private String experience;
private String position;
footballPlayer(String fn, String ln, int ag,float ht, float wt, String exp, String pos)
{
super(fn, ln, ag);
height = ht;
weight = wt;
experience = exp;
position = pos;
}
/**
* @return the height
*/
public float getHeight() {
return height;
}
/**
* @param height the height to set
*/
public void setHeight(float height) {
this.height = height;
}
/**
* @return the weight
*/
public float getWeight() {
return weight;
}
/**
* @param weight the weight to set
*/
public void setWeight(float weight) {
this.weight = weight;
}
/**
* @return the experience
*/
public String getExperience() {
return experience;
}
/**
* @param experience the experience to set
*/
public void setExperience(String experience) {
this.experience = experience;
}
/**
* @return the position
*/
public String getPosition() {
return position;
}
/**
* @param position the position to set
*/
public void setPosition(String position) {
this.position = position;
}
String getAllInfo()
{
return getFirstName() + " " + getLastName() + " " + getAge() + " " + " " + getHeight() + " " + getWeight() + " " + getExperience() + " " + getPosition();
}
private String status;
}
public class student extends person {
private String status;
student(String informedFirstName, String informedLastName, int informedAge)
{
super(informedFirstName, informedLastName, informedAge);
if (getAge() <= 25) status = "Traditional";
}
String getStatus()
{
return this.status;
}
public void setStatus(String status)
{
this.status = status;
}
String getAllInfo()
{
return getFirstName() + " " + getLastName() + " " + getAge() + " " + getStatus();
}
}
public class CollegefootballPlayer {
//attributes of football player and student
}
複数のインターフェイスをjavaで実装することはできますが、複数のクラスを拡張することはできません。あなたが望むことをするためには、生徒とサッカープレーヤをインターフェイスに変える必要があります。関連はありませんが、コードを適切にインデントして、Java命名規則(クラス名を大文字にする)に従うと、コードを読みやすく(したがってより簡単に)手助けすることができます。 – nhouser9
複数のインタフェースの実装!=多重継承 – azurefrog
Javaは複数のオブジェクト/クラスからの多重継承をサポートしていません。単一のクラスから拡張し、複数の 'インタフェース 'を'実装する'ことができます。あなたが賢い人なら、クラスを連鎖させて、 'Person' - ' 'Student' - ' 'FootballPlayer' – MadProgrammer