一、对象转型
(1)一个基类的引用类型变量可以“指向”其子类的对象
(2)一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)
(3)可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类
(4)子 类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting)
二、多态
1、父类做形参,子类参数做实参来实现多态
2、动态绑定(运行是绑定):是指“在执行期间”(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
3、实现多态的两个要素:方法重写、使用父类类型
4、好处:提高程序的可复用性、可扩展性
例:
三、抽象类
1、定义:用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法
2、含有抽象方法的类必须被声明为抽象类,主要被用作父类被子类继承,抽象类必须被继承,抽象方法必须被重写
3、抽象类不能new对象不能被实例化;抽象方法只需声明,而不需要实现
4、抽象方法无{ },无方法体,若有子类被继承必须把抽象方法实现
例:
四、Final关键字
1、final的变量(成员变量、局部变量)的值不能够被改变
2、final的方法不能够被重写
3、final的类不能够被继承
五、接口
1、定义
接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现
2、语法格式
<modifier> class <name> [extends <superclass>]
[ implements <interface> [,<interface>] * ] {
<declarations> *
}
接口定义例:
public interface Runner {
public static final int id = 1;
publid void start ();
public void run ();
public void stop ();
}
3、多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口
4、与继承关系类似,接口与实现类之间存在多态性
5、接口特性
(1)接口可以多重实现
(2)接口中声明的属性默认为 public static final 的;也只能是 public static final 的
(3)接口中只能定义抽象方法,而且这些方法默认为 public 的、也只能是 public 的
(4)接口可以继承其他的接口,并添加新的属性和抽象方法