前言:
现时小伙伴们对“抽象类和接口的区别java”可能比较讲究,同学们都需要知道一些“抽象类和接口的区别java”的相关知识。那么小编也在网上汇集了一些对于“抽象类和接口的区别java””的相关文章,希望朋友们能喜欢,同学们快快来了解一下吧!什么是抽象类
例如:
public abstract class A { abstract int add(int x, int y); int sub(int x, int y) { return x - y; }}抽象类的类名前加修饰符abstract,可以包含抽象方法(用abstract修饰,只有方法原型,没有方法的实现),也可以包含非抽象方法,可包含常规类能包含的任何成员;抽象类是没有具体实例对象的类,不能使用new方法进行实例化,只能用作超类,只有当子类实现了抽象超类中的所有抽象方法,子类才不是抽象类,才能产生实例,如果子类中仍有抽象方法未实现,则子类也只能是抽象类;只有抽象类才可以包含抽象方法。抽象方法的优点隐藏具体细节信息,所有的子类使用的都是相同的方法原型,其中包含了调用该方法时需要了解的全部信息;强迫子类完成指定的行为,规定所有子类的标准行为,是设计模式中的模板方法模式的体现。抽象类和接口的主要区别抽象类中可以包含普通类的任何成员,也可以包含非抽象方法,主要用于设计模式中的模板方法模式,如果项目设计时,遇到子类需要复用父类的实现方法,或者使用父类的成员变量,但又不希望直接使用父类时,那么可以声明父类为抽象类来解决;接口在 JDK 的当前版本中,也支持在接口中声明已实现的方法(用 default 关键字),而且接口中的变量,都为 public static final 修饰(可省略),而方法,都为 public abstract 修饰(可省略),但接口的主要用途还是用于约定实现类的“规范”;总之,如果需要用继承模板方法或变量来实现子类,那么就用抽象类声明父类,否则,只是约定“规范”那么就用接口。
更多知识可见公众号(开发者识堂),将持续分享全栈开发技术知识与项目经验。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #抽象类和接口的区别java #java类抽象类