如何继承不同类中存在的变量? 我需要从故障单和事件继承ticket_id和event_id,并检查它们在检查类上是否相同。接下来,我需要在applivation类上创建一个对象,每次在事件或票证类中更改值时,参数都应自行更新。
班级门票
public class ticket{
public int ticket_id;
.
.
.
ticket_id = ...;
}
班级活动
public class event{
public int event_id;
.
.
.
event_id = ...;
}
班级检查
public class check{
public check(int ticket_id,int event_id){
super();
this.ticket_id = ticket_id;
this.event_id = event_id;
}
.
.
getters and setters
.
.
.
}
班级申请
public class Application{
// the parameters must change everytime they change on the previous classes.
check app = new check(ticket_id,event_id);
.
.
.
}
答案 0 :(得分:1)
继承B意味着A是B,解释:学生将继承自Person,但不是从Date继承,即使他需要一个生日例如,这不是一个很好的例子,但我希望你理解它。所以在这里,检查不应该继承机票或事件,但可能必须使用它们,这是一个很好的方法:
public class check{
public check(Ticket ticket, Event event){
super();
this.ticket = ticket;
this.event = event;
}
并在您的申请中:
public class Application{
Ticket ticket = new Ticket(..);
Event event = new Event(..);
Check check = new Check(ticket,event);
.
.
.
}
或者您可以直接使用ticket_id
和event_id
,如果您只是在某种方法中需要它们,则无需进行检查:
public class check{
public check(){
super();
}
public checking(int ticket_id,int event_id){
.
.
.
}
public class Application{
Ticket ticket = new Ticket(..);
Event event = new Event(..);
Check check = new Check();
check.checking(ticket.ticket_id,event.event_id);
.
.
.
}
答案 1 :(得分:0)
Java中的多态性仅适用于方法, NOT 适用于变量!
你唯一能做的就是访问超类中的变量,如果它们的可见性允许的话。另一种可能的方法是通过getter / setter访问变量。
答案 2 :(得分:0)
检查应该是这样的
public class check{
public check(ticket t,event e){
this.ticket_id = t.ticket_id;
this.event_id = e.event_id;
}
我认为这应该有效 试图实施肯特的建议。 @Kent如果您愿意,请随时编辑
答案 3 :(得分:0)
IMO,除了你的多入口之外,这不是使用继承的正确理由。需要。
如果您使用了继承,通常我们可以说
"子类型是超类型"
。例如。 "
教师是(n)员工" ,"员工是人员"
等等。
我们并不完全了解您的业务领域,但您可以问自己,
" 检查故障单或事件"?
我猜测你的回答是否定的。你可能想说,
"不,支票不是票证或事件,支票有票证, 一个事件"。
如果确实如此,请使用合成而不是继承。
哦,我刚才意识到答案中没有代码......: - )