Java初学(五)——J2SE之面向对象编程4(多态、抽象类)

时间:2022-01-18 17:22:46

一、对象转型

(1)一个基类的引用类型变量可以“指向”其子类的对象

(2)一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)

(3)可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类

(4)子 类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting)

Java初学(五)——J2SE之面向对象编程4(多态、抽象类)

二、多态

1、父类做形参,子类参数做实参来实现多态

2、动态绑定(运行是绑定):是指“在执行期间”(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法

3、实现多态的两个要素:方法重写、使用父类类型

4、好处:提高程序的可复用性、可扩展性

例:

   Java初学(五)——J2SE之面向对象编程4(多态、抽象类)

三、抽象类

1、定义:用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法

2、含有抽象方法的类必须被声明为抽象类,主要被用作父类被子类继承,抽象类必须被继承,抽象方法必须被重写

3、抽象类不能new对象不能被实例化;抽象方法只需声明,而不需要实现

4、抽象方法无{ },无方法体,若有子类被继承必须把抽象方法实现

例:

               

        Java初学(五)——J2SE之面向对象编程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)接口可以继承其他的接口,并添加新的属性和抽象方法