抽象类
(1)什么是抽象类
使用abstract关键字对类进行修饰,这样的类我们称为抽象类
abstract class Animal{
public abstract void jiao();//抽象方法放到抽象类或接口中
//有抽象方法的类一定是抽象类
}
(2)抽象类的特点
a.抽象类也是类
b.抽象类不能创建(new)对象
c.抽象类中可以有抽象方法
d.抽象类可以继承具体类或抽象类
当子类继承抽象类时:
该子类必须实现(不叫重写)抽象父类(包括祖先类)中的所有抽象方法;
若子类未实现父类(包括祖先类)的所有抽象方法,则该子类就必须也是抽象类;
public class Dog extends Animal{
public void jiao(){ //实现父类的抽象方法,不能有abstract
System.out,println("汪汪汪");
}
}
(3)抽象类的作用
a.衔接两段程序
b.模板编程
接口
(1)什么是接口
接口也是一种引用类型,不是类(类也是一种引用类型)
public interface SATA{
}
(2)接口的成员
a.静态常量(默认带public static final;必须要初始化)
必须带static 的原因是接口不可以被实例化,"属性"必须设置成静态的,在加载的时候就能被
加载出来;其它"子类"对象才能使用它。
b.抽象方法(默认带public abstract)
(3)接口的实现implements
1、class NanShenDengPao implements DengPao{}
2、class A implements B,C,D,N{}
3、一旦一个类A实现了某个接口B,A类型则为B类型的子类型;因此我们可以用B类型的引用指向
子类型的对象B,从而构成了多态的前提。
(4)接口的继承
接口与接口之间可以有继承关系(接口可以多继承)
interface A extends B,C,D,N{}
注:
Java中类与类之间只能单继承:一个类只能有一个父类
(5)接口的作用
体现了规范思想
定义规范来隔离两个组件,利用多态的功能,实现了降低程序耦合度;耦合度越低程序的可维护性就越高。
(耦合度:组件之间结合的紧密程度,越低越好)
接口和抽象类的区别
(a)各自的语法区别
(b)从软件设计角度:抽象类体现了模板思想,而接口则定义了规范约束。