Java中多态应当注意

1、多态的分类:java

    一、引用多态:父类的引用能够指向本类的对象,父类引用能够指向子类对象,子类引用不能指向父类对象;安全

    二、方法多态:建立本类对象时,调用的方法为本类方法;建立子类对象时,调用的方法为子类重写的方法或者继承的方法;spa

   三、若是子类里有一个独有的方法,并非从父类中继承过来的,那么就不能经过父类的引用调用子类独有的方法。设计


2、引用类型转换:code

    一、向上类型转换(隐式/自动类型转换),是小类型到大类型的转换,不存在风险;
orm

    二、向下类型转换(强制类型转换),是大类型到小类型的转换,存在风险;对象

    三、instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题;继承

Dog dog=new Dog();
Animal animal =dog;//向上类型转换
Dog dog2=(Dog)animal;
Cat cat =(Cat)animal;//一、编译时不会报错二、实际开辟的内存空间为dog类型,会报错

        instanceof运算符,能够判断一个引用是不是某个类型或者是某个类型的子类型,返回一个布尔值;
接口

Dog dog=new Dog();
Animal animal =dog;//向上类型转换
Dog dog2=(Dog)animal;
if(animal instanceof Cat){
    Cat cat =(Cat)animal;
}else{
    System.out.println("没法进行类型转换");
}


3、抽象类abstruct:
内存

    一、某些状况下,某个父类只是知道其子类应该包含怎样的方法,可是没法准确知道这些子类如何实现这些方法。抽象类是约束子类具备哪些特征,即关注子类应该具备那些方法,而并不关注子类如何去实现;

    二、从多个具备相同特征的类中抽象出一个抽象类,以这个抽象类做为子类的模板,从而避免了子类设计的随意性。


4、接口interface:

    一、接口能够理解为一个特殊的类,由全局的常量和公共的抽象方法组成;

    二、类是一种具体的实现提,而接口定义了某一批类所须要遵照的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,他只规定这些类里必须提供某些方法。接口实际上是一个规范,是用来约束类的;

    三、接口是能够多继承的,类只能单继承。接口能够弥补类单继承的不足;

    四、若是要继承父类,继承的接口必须在实现接口以前。

相关文章
相关标签/搜索