1、接口
1.1、接口
-
接口在java编程语言中是一种抽象类型,是抽象方法的集合(接口里面都是抽象方法),接口通常以interface声明
-
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
-
接口并不是类·,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含 类要实现的方法
1.2、接口和类的区别:
-
接口不能实例化对象
-
接口里没有构造方法,没有变量只有常量
-
接口中所有的方法必须是抽象方法,
jdk1.8后可以有default或者static的普通方法,
JDK 1.9 以后,允许将方法定义为 private,使得某些复用的代码不会把方法暴露出去。
-
接口不是被类继承了,而是要被类实现。
-
接口支持多继承。
2、抽象类
2.1、抽象类的基本概念
普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。
那么什么叫抽象方法呢?在所有的普通方法上面都会有一个**“{}”,这个表示方法体,有方法体的方法一定可以被对象直接使用。而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰**。
而拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明。
abstract class A{
//定义一个抽象类
public void fun(){
//普通方法
System.out.println("存在方法体的方法");
}
public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
}
2.2、抽象类的使用
例子:直接实例化抽象类的对象
package com.wz.abstractdemo;
abstract class A{
//定义一个抽象类
public void fun(){
//普通方法
System.out.println("存在方法体的方法");
}
public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
}
public class TestDemo {
public static void main(String[] args)