Java接口与抽象类剖析

Java作为一个成熟的面向对象语言,在大型软件开发中起着很大的作用,在这样的大环境里占有一席之地。

而为了在多人合作乃至数十数百人合作的项目中避免设计上的不一致,也就是保证类在使用中的规范性,我们引入了接口的概念。

比如接口中有A方法,那么实现这个接口就必须实现A方法,这就人为地形成了一种规范,这也是所谓接口的意义。

那么,接口是如何定义的呢?

public interface 接口名{
//定义常量的语法格式:
public static final 数据类型  常量名   =   值;

//定义抽象方法的语法格式:
public 返回值类型   方法名(参数列表);
返回值类型   方法名(参数列表);
}

这就是接口的定义。我们要注意的是:
1.定义接口的关键字是interface。注意与类的不同,在新建接口的时候也要选择建立此类文件哦
2.接口中只能定义抽象的方法和常量。这就是以后其他接口或者类所要继承的东西
3.接口是可以继承接口的,并且可以同时继承多个接口。语法格式是:public interface 接口名 extends 接口名,......{}
4.接口默认的访问修饰符是public的。并且只有这一种,别的均会报错。
5.接口是一种特殊的类。这个不解释
6.接口中的抽象方法不能在接口中实现,所以不能使用{}结尾,只能使用;结尾。

接下来的问题是,接口我们已经定义好了,下一步就是实现接口的内容啦

public class 类名   implements  接口名,......{
//必须要重写接口中定义的所有方法,否则报错。
}

实现接口的时候我们同样需要注意一些必要的事项:
1.实现接口的关键字是implements 。这是特征也是要素
2.类只能继承一个父类(单根继承),类是可以同时实现多个接口的。
比如: public class 子类名   extends 父类名   implements 接口名,......{}
3.子类可以同时继承类,再实现多个接口,但是,反之则不可以。
4.接口的特点是,我们在接口中定义了多少个抽象方法,那么子类就必须要重写多少个的方法,也就是说所有的方法都要无条件重写哦。
5.实现接口的时候,接口中的常量是能被类继承到的。被继承的既然是全部框架,那么,常量也不例外。

有了接口,又有了类,那么,他们之间的区别在哪里呢?
1.接口与类的关键字不同
类 class  接口 interface
2.接口与类的方法不同
类 方法以{}结束,负责具体实现 接口 方法以;结束,只是抽象的形式
3.接口与类的继承方式不同
类只能继承一个父类,即单根继承 多个接口可以同时被一个类实现
4.接口与类的子类的继承内容不同
对于类,其子类既可以继承方法,也可以重写方法 但对于接口,子类必须重写所有的抽象方法

下面我们介绍Java中的抽象类

抽象类是介于接口和类之间的一种特殊类,该类既有接口的特性,又有类的特性。

他的定义方法如下:

public abstract class 抽象类名{
//可以定义类中所有的方法和属性。
//定义抽象方法,但是语法格式不同
public abstract 返回值类型 方法名(参数列表);
}
对于抽象类中的抽象方法,如果有类继承,那么,子类必须重写这些抽象方法 ,这和接口中的特点是相一致的。
抽象类在这里有很广泛的用途,他既可以继承类和抽象类,又可以去实现多个接口,这里的形式是:
public abstract class 抽象类  extends  父类名   implements 接口名,......{}
但是对于抽象类,它和接口一样,都是不可以实例化对象的,这一点只有类可以做到。

你可能感兴趣的:(java,抽象类,接口)