如何解决为什么只有Abstract类可以有构造函数,而Interface没有,而我可以通过匿名方法创建两者的obj
我在各种平台上研究了接口不能具有构造函数而抽象类可以具有构造函数。我们不能在接口中使用构造函数的原因之一是,所有非静态类的类都可以被初始化为构造函数,而在Interface中,我们只能使用静态变量,而该静态变量也仅在declrn时需要初始化。 任何其他有理由的理由都需要分享。因为通过匿名类对象的创建,我可以同时创建接口的对象和抽象类。以及我在接口内部拥有的任何抽象方法,都可以在创建匿名主体时进行定义。
解决方法
当您从接口new MyInterface() {...}
创建对象时,编译器实际上会创建一个实现该接口的匿名类。
接口不允许使用非静态成员,因此在没有可初始化的内容时,没有构造函数是没有意义的。抽象类可以具有由构造函数初始化的非静态成员,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。