一 接口中定义的成员变量是static final 类型的(静态常量类型)
二 抽象类中定义的成员变量是正常类定义的类型,也能定义普通方法和抽象方法,有抽象方法的类一定是抽象类
三(java1.8中接口可以定义普通方法需加上default关键字,后续会详细分析JAVA8新特性)
四 个人理解就是:
1对于相同的方法,每个子类实现了不同的操作,可以把该方法提炼成抽象方法
2对于相同的方法,并且每个子类对该方法的实现操作相同,则可以将该方法提炼成普通方法
3对于接口,可以说是一个比抽象类还要抽象的接口,制定了约束规范(在java8中有了新的改变)
4接口中定义的变量就是 static final 型变量 ,所以也就必须给其初始化值,因为该值是不可更改的,静态变量肯定要初始化值 ,定义的时候就必须给其一个准确的值,而不是编译器给其默认值
5 子类继承父类抽象类的时候,直接重写父类抽象类中的抽象方法,当然也能对非抽象方法进行重写
6 父类与子类继承的时候,子类本质上是可以把父类中所有的属性,方法什么的都能够继承,但是对于父类中private 类型的属性或者方法,是不能够进行访问的,如果想访问父类的私有属性,可以通过子类继承父类的getXX()方法进行访问。
7 满足 子类返回类型要<=父类的返回类型 这个条件,也可以对父类中返回父类对象的方法进行重写