Java接口和抽象类以及接口的意义

接口interface:

1. 在接口中没有变量,成员无论如何定义,都是公共常量,public static final即使不显式声明也如此。

2. 所有接口方法均隐含public abstract即使不显式声明也如此。(因而也不能使用protected和private修饰,不加修饰也不是默认权限)

3. 接口可以继承其他接口但是不能继承类,不能设计父接口中的方法,不能实现别的接口。

4. 任何类都可以引用接口,并对其中的方法进行自类中的实现。

抽象类abstract class:

1. 变量和方法均可定义权限,和普通类一样。

2. 抽象类只能有一个继承的父类但是可以implement很多接口和普通类一样。

3. 子类可以继承抽象类和普通类一样。换言之,抽象类不过是能够使用抽象方法的普通类。

看到这里,相信大家都在思考,既然接口本身不能实现任何功能且只能提供一些常量,那么接口有什么意义呢?

笔者看来接口更像是对上层的文档一样,在Java Web的中间层开发中,往往会提供接口-实现这样的开发模式,在接口类不改动的情况下,任意的改变实现是对其他层没有影响的,只要接口不改则其他层不需要改,接口起到的更像是一个API文档的作用。这样降低了应用的耦合度,增强了程序的可扩展性。

当需要检查我们的对象都使用了哪些接口,继承了哪些类时,可以用instanceof进行检查,instanceof看起来像是一个函数名,但实际上是一个操作符,使用方法类似:

Son son=new Son();

if(son isntanceof Father){

}

符号左边是一个对象,右边是一个类名,可以检查是否具有继承关系以及implement实现关系,中文翻译可以是:可以视作。

运用这个运算符,我们可以更好的整理好我们的继承多态结构,也可以更好的使用一些多态功能。

时间: 2024-10-07 02:04:08

Java接口和抽象类以及接口的意义的相关文章

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

Java 基础:抽象类与接口

1.什么是抽象 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的, 有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化. 这样,抽象类也就诞生了. 例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法. 所以,抽象类是

Java之路 - 抽象类、接口、多态、向上向下转型

1.抽象类 如果父类当中的方法不确定如何进行{}方法实现,那么这就是一个抽象方法 抽象方法所在的类必须是抽象类 使用方法: (1)不能直接创建new抽象类对象 (2)必须用一个子类来继承抽象父类 (3)子类必须覆盖重写抽象父类当中所有的抽象方法 覆盖重写(实现):去掉抽象方法的abstract关键字,然后补上方法体大括号: (4)创建子类对象进行使用 public abstract class animal { //抽象类 public abstract void eat(); //这是一个抽象

java中的抽象类与接口

抽象类: 用关键字abstract(位于class关键字之前的任何位置)修饰的类叫做抽象类,抽象类不能被实例化,即不能new出来一个抽象类的对象(实例). 对于关键字abstract---->可选修饰符(static.final.abstract)一般可以共存,但abstract与static.final都不能同时共存(理解其的真正含义) 抽象方法: 用abstract关键字所修饰的方法叫做抽象方法. 抽象方法必须定义在抽象类中. 抽象方法有声明,无实现(没有花括号{},有花括号但是内容为空也是

Java基础之抽象类和接口

抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方法.需要用到抽象方法 例如:对于动物类,我们知道父类“动物”会叫,但是因为不同的动物叫的方法不同,而对于子类”狗“这个子类又必须用到“叫”这个方法.因此对于父类“动物”的“叫”方法不知道怎么去写.这里就用到抽象方法. 代码示例: 1 //抽象类讲解 2 public class test抽象类 {

JAVA中的抽象类和接口

一 抽象类 抽象类就是不能被实例化的类,即不可以用new运算符创建本类的对象.在实际应用中,抽象类应该具有子类,且其子类一般不为抽象类. java中使用抽象类的原因有如下四点: 1.抽象类是较高层次的概括,其他的类可以继承它的抽象化特征: 2.抽象类包括它的所有子类共享的公共行为和公共属性,即抽象类中定义一些属性和方法,其他类继承该抽象类并实现这些属性和方法: 3.抽象类使编写程序更贴近人类的思维方式和客观世界: 4.在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性. 二 接口 在接口

Java基础:抽象类和接口

一.引言 基于面向对象五大原则中的下面两个原则,我们应该多考虑使用接口和抽象类: 里氏替换原则:子类可以通过实现父类接口来替换父类,所以父类应尽可能实现为接口/抽象类,方便拓展程序而不影响现有代码. 依赖倒置原则:和结构化设计不同,我们要让底层依赖于高层,而不是相反. 而设计接口和抽象类时尽量遵循面向对象五大原则中的"接口隔离原则",即使用专门接口比使用单一接口好.这个准则和针对类设计的"单一职责原则"对应. 备注:设计模式中有很多和接口和抽象类相关的模式,比如抽象

【Java笔记】——抽象类和接口

现在开发的主流都是面向对象,面向过程几乎已经被淘汰了.理解面向对象,就要知道它的三大特性,多态继承和封装.在学习面向对象的过程中,总是会接触到抽象类和接口,涉及到继承和实现,而这两个概念又总是傻傻分不清楚.不过经过不懈努力,还是解决的差不多了.下面就来介绍下抽象类和接口: 抽象类 概念 用abstract关键字来修饰的类称为抽象类 特点 1.不是完整的类,只能作为基类 2.不能被实例化 3.有抽象方法的类必须声明为抽象类,而且该抽象方法必须被重写 举例 <span style="font-

Java学习笔记—抽象类和接口

1.抽象类 在Java语言中使用abstrac关键字来定义抽象类和抽象方法,抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号. public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); //其余代码 } 抽象类总结: 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报