抽象类:
在Java中,一个没有方法体的方法应定义为抽象方法,类中如果有抽象方法,该类必须定义为抽象类。
public abstract class Animal{ //抽象类
public abstract void eat(); //抽象方法
}
抽象类特点:
1.必须用abstract修饰
2.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
3.抽象类不能实例化,但可以通过子类对象实例化
4.抽象类的子类:要么重写抽象类中所有的抽象方法;要么是抽象类
抽象类成员特点:
成员变量:可以是变量,也可以是常量
构造方法:有构造方法,但不能实例化(作用是用于子类访问父类数据的初始化)
成员方法:可以有抽象方法:限定子类必须完成某些动作
也可以有非抽象方法:可以提高代码的复用性
接口:
关键字:interface
public interface 接口名{}
类实现接口: public class 类名 interface 接口名{}
接口不能实例化,参照多态通过类对象实例化,这叫接口多态。
接口的实现类:要么重写接口中所有抽象方法,要么是抽象类
接口的成员特定:
成员变量:只能是常量,默认修饰符:public static final
构造方法:接口没有构造方法,因为接口主要是对行为进行抽象的,没有具体存在
一个类如果没有父类,默认继承自Object
成员方法:只能是抽象方法,默认修饰符:public abstract
类和接口的关系:
类和类:继承关系,只能单继承,但可多层继承
类和接口:实现关系,可以单实现,也可多实现,还可在继承一个类的同时实现多个接口
eg:public class InterImpl extends Object implements Inter1,Inter2,Inter3{}
接口和接口:继承关系,可以单继承,也可多继承
eg:public interface Inter3 extends Inter1,Inter2{}