java语言 百分网手机站

Java基础:抽象类和接口

时间:2020-09-06 10:43:09 java语言 我要投稿

Java基础:抽象类和接口

  导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面我们来看看抽象类和接口,希望对大家有所帮助。

  第一节 抽象类

  一.包含抽象方法的类;

  抽象方法:只有方法声明,没有方法实现的方法称为“抽象方法”;

  抽象类是对问题领域进行分析后得出的抽象概念。

  抽象类和抽象方法必须使用abstract修饰。

1
2
3
<code>抽象类的语法,规则。            
定义抽象类有三种情况:直接定义一个抽象类;或继承一个抽象类,但是没有完全实现父类包含的抽象方法;或实现一个接口,但没有完全实现接口中的抽象方法。              
</code>          

  二.abstrac关键字

  abstract不能用来修饰成员变量和构造方法,即没有抽象变量和抽象构造方法的说法。abstract修饰的方法必须被其子类重写才有意义,否则这个方法永远不会有方法体,因此抽象方法不能定义为private,即为private和abstract不能同时修饰方法,abstract也不能和static,final或native同时修饰同一方法。

  三.使用抽象类

  抽象类不能实例化(不能new 父类),只能被当成父类来继承。作为子类的模板。

  实例化它的子类,父类引用子类。

  第二节 接口 interface

  接口中的所有方法都是抽象方法

  一.a.接口;定义了某一批类所需要遵守的公共行为规范,只规定这批类必须提供的某些方法,而不是提供任何实现。体现了规范和实现的分离。是让系统的各个模块间面向接口耦合,是一种松耦合设计,降低模块间的耦合,增强系统的可扩展性和可维护性。

  b.定义一个接口,java只支持单一继承,不支持多重继承。java允许一个类实现多个接口,使得程序更加灵活、易于扩展。

  c.一个接口可以继承多个父接口,但接口只能继承接口,不能继承类;在接口里可以包含静态常量,抽象方法,内部类,内部接口以及枚举定义,java8之后允许定义默认方法,类方法;接口和类的默认访问符不同,接口体内定义的常量,方法等默认为public,可省略,即为接口定义的常量或方法不写public,其访问权依然是public。

  d.实现一个接口,(关键字implements)implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法;但没有完全实现接口中包含的抽象方法的类是抽象类

  二.接口的继承

  注意点:a.和抽象类一样,接口是一种更加抽象的类结构,不能对接口直接实例化;可以声明接口变量,并且用接口指向当前接口实现类的实例。使用接口指向当前接口实现类的实例对象,这种方式也是多态性的体现。

  一个接口可以继承多个接口,这和类的继承是不同的;接口体现的是一种规范;抽象类体现的是一种模板式设计。接口中定义的变量都是常量;抽象类中的定义的变量与普通类一样,默认是缺省。

  三.implements和extends的区别:

1
2
3
4
<code><code>Extends,表示对父类的继承,可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的.变量或者函数。            
Implements,表示对接口的实现,接口通过关键字interface 进行定义。eg:public class S implements F,在接口F中对方法进行声明,在类S中对该方法进行实现。            
</code></code>          

  四.面向接口编程

1
2
3
<code><code><code>面向接口编程和面向对象编程的关系:            
首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。            
</code></code></code>          

  什么是面向接口编程:

  譬如有一个Animal接口和一个NightWorking接口,公鸡实现了Animal接口,猫头鹰实现了Animal接口和NightWorking接口,还有一个实现了NightWorking接口的路灯,在Animal的范畴下,我们可以称公鸡和猫头鹰是同类事物,而在NightWorking的范畴下,我们可以称猫头鹰和路灯是同类事物,这里就是说对于animal接口来说,要看种类的话路灯是不会实现animal里面的NightWorking接口的,但是要看是否有想要的功能实现NightWorking接口的话,猫头鹰和路灯都同一事物。 不是面向实现,而是面向接口。

1
2
<code><code><code><code>特点:可维护性,可扩展性          
</code></code></code></code>          

  第三节 instanceof 关键字

  instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。

1
2
3
<code><code><code><code><code>作用:鉴别对象的类型。            
语法: 引用类型变量 instanceof 引用类型 示例:String a=“abc”; Object b=“abc”; 判断→System.out.println(“是否是object的实例”+(b instanceof object));          
</code></code></code></code></code>          

【Java基础:抽象类和接口】相关文章:

Java抽象类和接口的比较09-28

理解Java的接口与抽象类11-24

Java接口介绍12-08

介绍Java array接口11-29

抽象类java的概念理解11-23

Java中接口的知识汇总12-01

Java中Executor接口用法大全11-27

java Runnable接口如何创建线程10-03

关于Java各种接口的介绍11-27

深入了解Java中的接口11-23