继承(extends), 多态 , 抽象(abstract)接口() 易混难点解析
特性
- java是单继承的,一个类直接继承的父类只能有唯一的一个
- java中父类可以有多个子类
- Object是所有类的父类,一个类没有父类则默认继承Object;
继承中的重写
- 子类重写方法访问权限不能比父类低
- 私有(private)方法不能被重写
继承中构造方法
- 子类中所有的构造方法都会默认访问父类中的无参构造方法
- 子类会继承父类中的数据,可能会使用父类的数据.所以子类初始化之前,一定会先完成父类数据的初始化.
- 每一个子类构造方法的第一条默认语句都是super();
- 父类中没有无参,只有有参
- 可以通过super关键字显示调用父类的带参构造方法
- 在父类中自己提供一个无参构造方法
多态中的成员访问
- 成员变量 : 编译看左边,执行看左边
- 成员方法 : 编译看左边,执行看右边
父类引用指向子类对象(向上转型)
Animal a=new Cat();
父类引用可以访问子类重写方法;
父类引用转为子类对象(向下转型)
Cat c=(Cat)a;
a.eatyu();
可以访问子类特有方法
抽象(abstract)
- 抽象类和抽象方法都必须使用 abstrsct 关键字修饰
- 抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
- 抽象类不能实例化
抽象类可以参照多态的形式,通过子类对象实例化,这叫抽象类多态
- 抽象类的子类要么是抽象方法,要么重写抽象方法;
接口(interface)
接口的特点
- 接口用关键字 interface 修饰
public interface 接口名{…}
- 类实现接口用 implements 表示
public class 类名 implemends 接口名{…}
- 接口不能直接实例化
接口参照多态的形式,通过实现类对象实例化,这叫做接口多态
接口的成员特点
- 成员变量
成员变量只能是常量
接口中的成员变量默认使用 public static final 修饰