内容简介:Java 抽象类的理解
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可以得知,是这样的。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-05/144193.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
像程序员一样思考
V. Anton Spraul / 徐波 / 人民邮电出版社 / 2013-6 / 49.00元
编程的真正挑战不是学习一种语言的语法,而是学习创造性地解决问题,从而构建美妙的应用。《像程序员一样思考》分析了程序员解决问题的方法,并且教授你其他图书所忽略的一种能力,即如何像程序员一样思考。全书分为8章。第1章通对几个经典的算法问题切入,概括了问题解决的基本技巧和步骤。第2章通过实际编写C++代码来解决几个简单的问题,从而让读者进一步体会到问题解决的思路和应用。第3到7章是书中的主体部分,分别探......一起来看看 《像程序员一样思考》 这本书的介绍吧!