加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Java 抽象类的认识

发布时间:2021-12-08 20:01:33 所属栏目:PHP教程 来源:互联网
导读:1. 基本概念 用abstract修饰的类是抽象类。如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是抽象类)。抽象类是不完整的,只能作为基类,且不能够实例化。 2. 与类进行比较

1. 基本概念
 
用abstract修饰的类是抽象类。如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是抽象类)。抽象类是不完整的,只能作为基类,且不能够实例化。
 
2. 与类进行比较
 
抽象类不能够实例化,并且对抽象类直接使用new运算符会导致编译错误。
 
允许抽象类中包含抽象方法或者变量。
 
抽象类不能是private的。
 
3. 和接口比较
 
不同点:
 
  抽象类能够有实现了的方法,接口不能有。
 
  类可以实现无数个接口,但只能继承一个抽象类(或者其他类),抽象类派生的类扔可以实现接口,从而得出接口是用来解决多重继承的问题的。
 
  抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。
 
  抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。
 
  抽象类是对象的抽象,然而接口是一种行为规范。
 
相似点:
 
  都不能实例化。
 
  都可以包含未实现的方法声明。
 
  派生类必须实现未实现的方法,其中抽象类是抽象方法,接口是所有成员。  
 
Tip:
 
1. implements的声明的方法里面不能使用private来修饰方法。
 
2. abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
 
3. 实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
 
4. 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
 
5. 接口中的方法默认都是 public,abstract 类型的
 
6. 接口可以继承接口(使用extends语句);抽象类可以实现接口;抽象类可以继承实体类。抽象类不需要实现接口的全部方法。
 
7. 很有意思的地方:抽象类继承接口,然后实体类继承抽象类,发现不需要实现最开始的接口定义的方法。于是乎,接口定义的方法,在实体类实现的时候成为了抽象方法的存在。不过根据Tip5可以得知,是这样的。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读