1.抽象类(abstract)
(1)特点
①方法只有声明没有实现时,该方法就是抽象方法,抽象方法必须定义到抽象类中,该类也必须被abstract修饰
②抽象类不可以被实例化,因为调用抽象方法没有意义。
③抽象类必须有子类覆盖所有的抽象方法,该子类才可以实例化,否则,这个子类还是抽象类
(2)常见问题
①抽象类中有构造函数吗?
有,用来给子类对象初始化
②抽象类可以不定义抽象方法吗?
可以。目的是不让该类创建对象,通常这个类中的方法有方法体,却没有内容
③抽象关键字不可以和哪些关键字共存?
private,static,final
④抽象类和一般类的异同
相同:都是用来描述事物的,都在内部定义了成员
异同:a.一般类中有足够的信息描述事物,抽象类描述事物的信息可能不足
b.一般类中不能定义抽象方法抽象类可以定义抽象方法,同时也可以定义非抽象方法
c.一般类可以被实例化,抽象类不可以被实例化
2.接口(interface)
接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法(http://www.runoob.com/java/java-interfaces.html)
(1)固定的修饰符
①全局常量:public static final
②抽象方法:public abstract
(2)特点
①一个类可以实现多个接口,而且在继承另一个类的同时,还可以实现多个接口。
②接口的出现避免了单继承的局限性,接口与接口之间是继承关系,而且接口可以多继承。
(3)抽象类和接口的异同
①相同点:
都是不断向上抽取而来的
②不同点:
a.抽象类需要继承,而且只能单继承
接口需要被实现,而且可以多实现
b.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法
接口中只能定义抽象方法,必须由子类去实现
c.抽象类的继承,是 is 关系,在定义该体系的基本共性内容。
接口的实现是 like 关系,在定义体系额外功能。
(4)接口的应用:
接口类型的引用,用于接受(指向)接口的子类对象。
原文地址:https://www.cnblogs.com/lydbky/p/8245614.html