Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 声明一个可重载的抽象方法?_Java_Oop_Interface_Abstract Class_Class Design - Fatal编程技术网

Java 声明一个可重载的抽象方法?

Java 声明一个可重载的抽象方法?,java,oop,interface,abstract-class,class-design,Java,Oop,Interface,Abstract Class,Class Design,我正在创建一个java类库,并试图实现一个工厂模式来帮助创建“预订”对象。我创建了一个接口IBookingFactory,它声明了一个方法createBooking,该方法接受许多参数 我的问题是,我不希望实现这个接口的类能够向方法传递不同的参数 实现该接口的类是GuestBookingFactory和CustomerBookingFactory。客户预订接受客票、客户和数量,客户预订接受客票、数量以及字符串电子邮件和地址 关于如何设计这个有什么建议吗?我知道我不能重载接口中声明的方法,所以我一

我正在创建一个java类库,并试图实现一个工厂模式来帮助创建“预订”对象。我创建了一个接口IBookingFactory,它声明了一个方法createBooking,该方法接受许多参数

我的问题是,我不希望实现这个接口的类能够向方法传递不同的参数

实现该接口的类是GuestBookingFactory和CustomerBookingFactory。客户预订接受客票、客户和数量,客户预订接受客票、数量以及字符串电子邮件和地址

关于如何设计这个有什么建议吗?我知道我不能重载接口中声明的方法,所以我一直在想,还有什么其他方法可以考虑这个问题呢

    public interface IBookingFactory {
        public Booking createBooking(Ticket ticket, Customer customer, Integer quantity);
    }

    public class CustomerBookingFactory implements IBookingFactory {

        @Override
        public CustomerBooking createBooking(Ticket ticket, Customer customer, Integer quantity) {
            throw new UnsupportedOperationException("Not supported yet."); 
        }

    }

    public class GuestBookingFactory implements IBookingFactory {

        @Override
        public Booking createBooking(Ticket ticket, Integer quantity, String email,
        String address, String postcode) {

            throw new UnsupportedOperationException("Not supported yet.");
        }

    }

可以重载接口中声明的方法。如何重载?我得到一个错误,表示该方法没有重写或实现返回类型中的方法-我假定这是因为我在接口中声明了该方法,即获取票证、客户和数量,现在我正试图为一个客户机实现它,我想“重载”这个方法并传递不同的参数。是的,即使在一个接口中,也可以有任意数量的重载方法。您只需要为所有人提供实现declarations@Charlie您需要向我们展示您的代码。我想我的问题不是一个方法是否可以在接口中重载,我想声明一次该方法,但能够为每个具体化实现两个版本。。它们采用不同的参数。