如何使用Java中的抽象类,接口
这篇文章主要讲解了如何使用Java中的抽象类,接口,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
抽象类:
abstract class A{ abstract void talk();//只能声明,不能具体定义}class B extends A{ void talk() { System.out.println("run in B");//子类必须重写抽象方法 }}public class Demo { public static void main(String[] args) { B b=new B(); b.talk(); }}
接口:接口也是抽象的,抽象的原因与抽象类的原因类似。但用处不同,接口一般用于定义类的统一行为,而抽象类是“继承”。类重写一个接口中的所有抽象方法称为接口的实现。接口解决的问题:JAVA不直接支持多继承,但支持多实现。接口体中包含常量定义和方法声明,不允许对方法进行定义。接口可以说是完全抽象的抽象类。子类需要覆盖接口中的所有的抽象方法才能实例化,否则它是一个抽象类。如果一个类实现了一个接口,该类必须对接口中声明的方法进行定义。实现方法时方法的名字、返回类型、参数个数及参数类型必须与接口声明的一致。接口中,方法的修饰符默认是public abstract;接口中的常量的修饰符默认是public static final;所以子类中必须使用public来修饰定义的方法。接口的定义格式:接口的实现:
package 接口;interface A{ public static final int size=100; public abstract void talk();// public abstract void eat();}class B implements A{ //实现A中的抽象方法 public void talk() { System.out.println("B talk"); }}public class Demo { public static void main(String[] args) { new B().talk(); }}注意:如果一个类声明实现了一个接口,但没有实现接口的所有方法,那么这个类必须是抽象类如果一个类没有完全实现接口中的所有方法,那么这个类必须是一个抽象类。
抽象类与接口的异同:相同:都是抽象的都不能被实例化都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不提供具体的实现。差异:接口是完全抽象概念设计区别:抽象类是可以有非抽象方法的,而接口是完全抽象的,其实可以这样理解他们的区别:A,B都是一个抽象类,但它们由于是“父类”,所以一般来说都是有一些具体属性的,可以说抽象类是一个父类的抽象化,但它离不开父类与子类的关系;但接口定义的是行为,它并没有强的父子类关系,它只是完全抽象的定义了一些行为作为标准,就像工厂里的元件的各种标准。而接口中的变量和方法的修饰符都显示出接口是一个“开放的固定的行为标准”
看完上述内容,是不是对如何使用Java中的抽象类,接口有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。