Java 将变量从不同类继承到一个类中
如何继承存在于不同类上的变量? 我需要从ticket和event继承ticket\u id和event\u id,并检查它们在check类上是否相同。接下来,我需要在applivation类上创建一个对象,每次事件或票证类中的值更改时,参数都应该更新自己 班票Java 将变量从不同类继承到一个类中,java,class,inheritance,Java,Class,Inheritance,如何继承存在于不同类上的变量? 我需要从ticket和event继承ticket\u id和event\u id,并检查它们在check类上是否相同。接下来,我需要在applivation类上创建一个对象,每次事件或票证类中的值更改时,参数都应该更新自己 班票 public class ticket{ public int ticket_id; . . . ticket_id = ...;
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);
.
.
.
}
Java中的多态性只适用于方法,不适用于变量
你唯一能做的就是访问超类中的变量,如果它们的可见性允许的话。另一种可能的方法是通过getter/setter访问变量。检查应该是这样的
public class check{
public check(ticket t,event e){
this.ticket_id = t.ticket_id;
this.event_id = e.event_id;
}
我认为这应该行得通
试图实施肯特的建议。
@肯特,如果你愿意,请随意编辑。A继承B意味着A是B,解释:学生将从个人继承,但不是从日期继承,即使他需要一个生日,例如,这不是一个很好的例子,但我希望你能理解。因此,在这里,check不应继承自ticket或event,但可能必须使用它们,这是一种很好的方法:
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);
.
.
.
}
或者您可以直接使用票证id
和事件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);
.
.
.
}
依我看,除了你的多重继承之外,这不是使用继承的正确案例。需要 如果您使用了继承,通常我们可以说 “子类型是一个超类型” 。例如。” 教师是(n)员工”,“员工是一个人” 等等 我们不知道你的业务领域,但你可以问问自己 “是否检查门票或活动” 我想你的答案是否定的。你可能想说 “不,支票不是票证或事件,支票有票证和 事件” 如果这是真的,那么使用组合而不是继承
哦,我刚刚意识到我的答案中没有代码…:-) @1337你是认真的吗?@1337甚至不使用
extends
?@sᴜʀᴇsʜᴀᴛᴛᴀ 不是以OP想要的方式。但是,是的,我知道……)@vagg77 OP希望从多个类继承,这在Java中是不可能的。。您只需要两个ID就可以用于check.constructor,为什么不传入两个对象(或两个ID)?我的check类中有getter和setter