为什么说抽象类是用来捕捉子类的通用特性的,而接口则是抽象方法的集合呢?
抽象类是用来捕捉子类的通用特性的(也就是说它只是用来监督),而接口则是抽象方法的集合; 抽象类不可以被事实解释,只能被用作子类的超类,是被用来创建继承层级里子类的模板,而接口只是一种形式,接口自身不可以做任何事情。 其次,抽象类可以有默认的方法实现,子类使用extends关键字来继承抽象类,如果子类不是抽象类的话,它需要提供抽象类中所有声明方法的实现。而接口完全是抽象的,它根本不在方法的实现,子类使用关键字implements来实现接口,它需要提供接口中所有声明方法的实现。 抽象类可以有构造器,除了不能实例化抽象类之外,它和普通Java类没有任何区别,抽象方法可以有public、protected和default这些修饰符。而接口不能有构造器,是完全不同的类型,接口方法默认修饰符是public,不可以使用其它修饰符。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。