Java学习笔记12 java中的多态、抽…

来源:互联网 发布:unity3d 插件编写 编辑:程序博客网 时间:2024/05/29 07:47

1. 多态(polymorphism):子类就是父类(玫瑰就是花,女人是人),因此多态的意思就是,父类型的引用可以指向子类的对象。如:Aniamlcat= new Cat();//动物的引用指向猫的对象是可以的,因为猫就是动物。  

2.        Parent p = newChild();p.sing();当使用多态调用方法时,首先检查父类是否有sing()方法,如果没有则编译错误,如果有,再取调用子类的sing()方法。(也就说,父类型的引用指向子类的对象,则此引用只能在子类中调用父类中存在,子类存或不存在的方法),解释:p是一个Parent类型的实际指向newChild()对象的实例。

3.        .一共有两种类型的强制类型转换:

a)        向上类型转换(upcast):比如说将Cat类型转换为Animal类型,也就是将子类型转换为父类型(其实他们指向的对象任然是子类对象,只是对子类方法的调用有了约束,必须调用父类中有的子类方法或子类无重写时的父类方法),对于向上类型转换,不需要显式指定

b)        向下类型转换(downcast):比如将Animal类型转换为Cat类型。即将父类型转换为子类型(向下转换实质是,父类型的引用指向子类对象转换为子类型的引用指向子类对象,解除了调用子类方法父类中必须有的限制条件)。对于向下类型转换,必须要显式指定(必须要使用强制类型转换)。

4.        抽象类(abstractclass):使用了abstract关键字所修饰的类叫做抽象类。抽象类无法实例化,也就是说呢,不能new出来一个抽象类的对象

5.        抽象方法(abstractmethod):使用abstract关键字所修饰的方法叫做抽象方法。抽象方法必须定义在抽象类中。相对于抽象方法,其他的方法可叫做具体方法(有声明,有实现)

可知:如果一个类包含了抽象方法,,那么这个类一定是抽象类,一定要声明成abstract class;反之,如果某个类是抽象类,那么该类可以包含抽象方法,也可以包含具体方法。

6.        无论何种情况下,只要一个类是抽象类,那么这个类就无法实例化

7.        在子类继承父类(父类是抽象类)时,那么子类必须要实现父类中所定义的所有抽象方法;否则,该子类需要声明成一个abstractclass

8.     多态:所谓多态,就是父类型的引用可以指向子类型的对象,或者是接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类的强制类型转换完全一样

 

 

 

0 0
原创粉丝点击