java抽象类及接口
Java抽象类:
抽象类特点:抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被extends [抽象类]方式 继承才能被使用。
抽象类表示的是一种继承关系。
(总结就是:抽象类里面设计跟普通类一样,但就是不能用来实例化对象,所以需要被继承类 extends [抽象类] 继承来使用)
创建方式:
public abstract class a{
......可以是有变量方法还有构造方法等等.....
}
//继承
public class b extends a{
}
java接口:
接口特点:接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。 类描述对象的属性和方法。接口则包含类要实现的方法。 (通常在我们要定义某些行为(即方法)的时候考虑才去定义接口)。接口支持多继承。
接口无法被实例化,但是可以被 implements [接口] 方式来实现。
接口中所有的方法必须是抽象方法(因为接口及其方法都是隐式的,所以abstract可以省略)。
接口的实现类必须实现接口内所有方法,否则就必须声明为抽象类。(参数名还有方法返回类型不可更改)。
接口没有构造方法。
(总结:接口不是类只是写法像而已,它的方法都为抽象方法,方法里面不能写具体内容,必须在子类中implements [接口] 实现接口内所有方法,且方法类型和参数类型数量都不能更改)
创建方式:
interface a extends [其他的接口名] {
// 声明变量
// 抽象方法
}
public class b implements [c,d...]{
//每个抽象方法的实现
}
//当然如果要使用到接口里的常量直接 接口.变量名 就可以取值了,因为接口里的变量只能是常量嘛
抽象类和接口的区别:
-
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
-
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
-
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
-
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
前路昭然,你我共济