Java中abstract与interface

抽象类(abstract class)的特点:

1.抽象类、抽象方法都必须使用abstract修饰。

2.抽象类中,可以有非抽象方法,甚至可以是没有任何方法或变量的空类。

对于抽象类中不定义抽象方法的用意在于:使该类不能被创建对象。

3.抽象方法,是不能有方法体的。

对于抽象方法的访问限制符,可以是public、protected、不写。

4.抽象类,不能使用new创建对象。

5.抽象类的抽象方法,如果只有部分抽象方法被子类重写,则该子类依然是抽象类;如果抽象类的全部抽象方法被子类重写,则该子类可以是普通类,当然也可以是抽象类。

接口(interface):

接口可以认为是一个特殊的抽象类:该抽象类中的方法都是抽象的,则这个抽象类就可以用接口的形式来描述。

1.interface中,有定义常量,抽象方法。

对于常量,默认使用的修饰符是:public static final.

对于抽象方法,默认使用的修饰符是:public abstract.

修饰符都只能是给定的任意组合,当然都是可以不写的,不管哪种,表示的效果都是一样的。

2.接口可以被类多重实现。

3.接口与接口之间,只能通过extends进行扩展。即称为:接口与接口之间拥有继承关系。

虽然是继承(使用extends),但是可以写多个,即类似于多重继承。例如:

Inter1 ,Inter2都是interface,则有 interface Inter3 extends Inter1,Inter2{}是正确的。

对于普通类,Cla1,Cla2,都是Class,但是Class Cla3 extends Cla1,Cla2{}是错误的。

时间: 2024-10-31 01:26:28

Java中abstract与interface的相关文章

java中abstract和interface的區別(轉)

(一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有 很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的 选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理 解.对于设

`Java`中`abstract class`与`interface`区别

abstract class Java中允许使用abstract修饰符声明方法,此时只定义方法但是不实现方法(abstract修饰的方法没有主体,只有一个签名和一个分号). 以下是abstract方法和这些方法所在的abstract类相关的规则: 只要类中有一个abstract方法,那么这个类本身就自动成为abstract,而且必须声明为abstract class,否则会导致编译错误; abstract class无法实例化; abstract类的子类必须覆盖超类的每个abstract方法,并

java中的接口interface

关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 接口中的成员 接口中的所有的成员,缺省情况下都是public的,也必须是public,无论是方法,还是字段.因为接口就是规定了API,如果实现的类不公开接口中的API,怎么能叫API呢? 接口中可以 定义方法 和 字段. 接口中的字段,缺省(也是必须)为 public static final  .在定义的接口中必须初始化,因为是fi

Java中接口(Interface)的定义和使用

有关 Java 中接口的使用相信程序员们都知道,但是你们知不知道接口到底有什么用呢?毫无疑问,接口的重要性远比想象中重要.接下来我们便一起来学习Java中接口使用. Java接口是什么 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 接口(英语:Interface),在JAVA编程语言中是一个抽象类型(Abstract Type),它被用来要求类(Class)必须实现指

Java中的接口(interface)

Java中提倡面向接口编程,而不是面向类编程,个人理解就是将做什么和怎么做分开,以实现松耦合的目的. 基本数据类型分四类八种 : 整型.浮点型.字符型.布尔型: 引用数据类型分三种 : 类 . 接口 . 数组 : 1.接口不是类: 2.接口中也有属性和方法,接口中的属性默认用 public static final 修饰: 3.接口中的方法默认用 public abstract 修饰,接口中不能包含非抽象方法: 4.一个类可以实现接口,用implements关键字实现,如果一个类实现了接口,那么

【juincen】Java中的接口interface类比js中的回调函数

前几天在左讯飞语音的时候,无意间意识到java中的接口和js中常用的回调函数有点类似,今天在这儿整理一下思路. interface,Java中的接口,为什么会有这个东西. 一,预留声明 比如两个程序员A和B,A要写一段程序,其中需要调用到B写的程序.这时候A可以写一个接口: public interface Demo{ void deal(); } A要调用的方法先“预留声明”在接口里:deal 然后B去完善这个接口,B写了一个实现类实现了这个Demo接口. A在自己的业务逻辑里面只用调用接口的

Java中abstract class 和 interface 的解释和他们的异同点(转)

(一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有 很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的 选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理 解.对于设

PHP中Abstract与Interface区别

Abstract Class和C++中的抽象类概念一样,包含有纯虚函数(Java和Php中叫abstract method)的类叫做Abstract Class. 我们有时候也把abstract Class叫做base class,因为base class不能直接生成对象. 代码示例 : abstract class example { public function xyz() { return 1; } } $a = new example();//this will throw error

Java中abstract的用法

1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法. 2,abstract修饰方法,会使这个方法变成抽象方法,声明(定义)而没有实现,实现部分以":"代替.需要子类继承实现(覆盖). 3.abstract修饰符在修饰类时必须放在类名前. 4.abstract修饰方法就是要求其子类覆盖(实现)这个方法.调用时可以以多态方式调用子类覆盖(实现)后的方法,也