java面向对象上:多态和抽象

来源:互联网 发布:魅族手机仅限数据连接 编辑:程序博客网 时间:2024/05/16 15:58

9 、多态和抽象:

 

       多态:
       相同的行为不同的实现就是多态。
       多态分为两种:静态多态和动态多态。
       静态多态指程序在编译时,系统就能决定调用哪个方法。重载和重写就属于静态多态。
       动态多态指在运行中程序才能动态确定方法所指的对象。

       多态的技术:
       使用动态绑定和重写机制来实现多态。
       向上转型技术:由小变大自动转换;
       instanceod关键字也是操作符boolean:用于判断运行时对象的真正类型;
       动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法。
       引用数据类型转换只能发生在有继承关系的类上;父类引用可以指向子类对象,父类也可以指向子类的子类对象;子类引用不能指向父
类。
       两种情况允许强制转换:1、本类的引用指向本类的对象,父类的引用指向子类的对象。
       引用不用是自动释放,垃圾回收起永远只回收对象。
       Object的引用可以指向所有引用类的对象;Object[]可以存放任意引用类型。

 

       多态的主要应用:
       多态参数:public void payemployee(employee e){};
       异构结合:不是同一类型,但是有共同父类的数据集合,不同对象的集合称为异构集合。
       Object[]不能存放基本数据类型,如存放基本类型的数据会直接转换成引用数据类型。因为Object存的是引用,用引用来指向地址。

 

       多态总结:
       1、使用父类类型的应用指向子类的对象;
       2、该引用只能调用父类中定义的方法,不能调用子类中独有的方法;
       3、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法。
       4、在多态中,子类可以调用父类中的所有方法。

 

       抽象:

 

       抽象类:不能产生对象。


          public abstract class father{}
       使用关键字abstract可以声明一个抽象类,该关键字可以出现在声明时class前的任何地方。
       abstract关键字不能用于修饰属性,只能用于类和方法。
       抽象类的作用是用来继承,它与最终类相反。
       抽象类也有构造方法,它会强制子类重写父类抽象方法,抽象类可以没有抽象方法,但是有抽象方法一定是抽象类,不管有几个。


       
       抽象方法:
       public abstract void play();不能有花括符,可以有接收和返回。
       abstract是可选修饰符,可以多个组合,但是abstract不能和final组合。
       将一个方法声明为抽象方法有两个结果:
       1、类也必须声明为抽象类,
       2.任何子类必须重写抽象方法,除非子类本身也是抽象的。

 

原创粉丝点击