Java抽象类与接口实例分析
这篇“Java抽象类与接口实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java抽象类与接口实例分析”文章吧。
1.抽象类
1.1抽象类概念
我们都知道对象是通过类来进行描述的,但是不是说所有的类都是用来描述对象的
一个类的类中没有足够的信息来描述一个具体的对象,这便是抽象类
抽象类的关键字:abstract
1.2抽象方法
首先还是看看之前写过的类:
class Plant { String name; String source; String genus; public void trait() { System.out.println("父类方法"); }}class Tree extends Plant { @Override public void trait() { System.out.println("子类方法"); }}
既然trait方法是重写的方法,那么父类的trait根本就没有实现的必要,所以我们可以将其改成抽象方法
注意:抽象类可以没有抽象方法,但抽象方法必须在抽象类里面
abstract class Plant { String name; String source; String genus; public abstract void trait();}class Tree extends Plant { @Override public void trait() { System.out.println("子类方法"); }}
1.3抽象类的细节
抽象类是用于被继承的,所以无法实例化,除这点外它和普通的类没有区别
抽象类里面可以没有抽象方法,但抽象方法一定要在抽象类中
一个普通类继承抽象类,要重写抽象类里面所有的抽象方法
抽象类可以继承抽象类,此时不需要重写抽象方法
final无法修饰抽象类和抽象方法
抽象方法不能使用private和static修饰
可能会有人觉得奇怪:普通类也可以作为父类被继承,为什么还要再弄一个抽象类出来?
我们不妨假设一个场景:你在实例化对象的时候实例化了父类对象,如下:
public static void main(String[] args) { Plant tree=new Plant(); tree.trait(); }
如果父类是普通类的话,此时编译器不会报错,直接调用父类的方法
如果父类是抽象类,因为抽象类无法被实例化,所以编译器会直接报错,这样问题就能更早被发现
2.接口
2.1接口概念
所谓接口就是公共的行为规范准则,比如说A4纸,A4纸的大小是210mm*297mm,那么你就只能按照这个规格来进行生产
在Java中接口就可以看成是多个类的公共规范,是一种引用类型数据
接口关键字:interface
2.2接口的细节
接口同样有一些需要注意的事项:
接口也是用来被其它类实现的,同样不能实例化
接口里面的方法只能是抽象方法,默认是public static修饰
接口的成员变量默认是静态常量,所以必须初始化
接口被实现所使用的关键字为implements,类实现接口依旧要重写接口中所有的抽象方法
接口不能有构造方法和静态代码块
接口继承接口使用extends
创建接口时,接口的命名一般以大写的字母“I”开头(建议,非硬性要求)
接口也可以实现多态
接口在Java中最主要的作用就是实现多继承
Java中一个类只能继承一个父类,但它可以实现多个接口
抽象类和接口有相似的地方,不过二者之间最本质的区别就是抽象类可以有普通成员方法和普通成员变量,而接口中的方法只能是抽象方法
抽象类和接口介绍完毕,下一篇会介绍Java中一些比较重要的接口
以上就是关于“Java抽象类与接口实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341