多态:
继承,重写后,基类引用指向子类对象。
调用基类被重写的方法时,实际new的是哪个子类对象,调用哪个子类对象方法。
多态是执行期间(非编译)判断所引用的对象的实际类型。
提升可扩展性。
使用举例:
方法传入基类对象(接口对象)作为形参,实际调用时,如果传入的是子类对象(实现接口的对象),则调用形参成员时,调用的是实际参数,即子类对象(实现接口的对象)的成员。
抽象类和抽象方法:
抽象方法只需声明,不用实现。
public abstract void a();
抽象方法用来被子类重写,且子类必须重写,否则子类要声明为抽象类。
有抽象方法的类即为抽象类且必须声明为抽象类。
抽象类只能被继承,不能实例化。
接口:
public interface A{
public static final int i = 1;
public void B();
}
接口可以多重实现。
接口是抽象方法和常量值的集合。
接口是特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现。
变量默认且必须public static且final。
方法默认且必须public abstract。
接口解决了“多继承”时,子类对象包含的多个父类对象成员重名问题,成员属于接口,不属于实现接口的对象。
接口的抽象方法必须被重写。
接口有多态。
类和类之间:extends
类和接口之间:implements
接口和接口之间:extends
接口前的public要注意应不应该存在。