多态,匿名内部类笔记整理

父类类型 变量名=new 子类对象;

变量名.方法名( );

除了非静态方法是编译时看左边,运行时看右边;其余都是编译时看左边,运行时也看左边

多态的应用场景:

  • 变量多态-->意义不大,继承也能实现
  • 形参多态:方法的参数类型为父类类型,这样参数就可以接收父类类型的对象或者它所有的子类对象(方法名 (父类类型 参数)
  • 返回值多态:如果返回值类型为父类类型,那么就可以返回该父类类型的对象或者它所有子类对象(return new 要返回的方法)

下转前要判断:

instanceof关键字:

变量名 instanceof 数据类型 
如果变量属于该数据类型,返回true。
如果变量不属于该数据类型,返回false。

if( anl instanceof Cat){//判断anl是否能转换为Cat类型,如果可以返回:true,否则返回:false
    Cat c = (Cat)anl;//安全转换
}

匿名内部类:

作用就是为了简化代码,在不创建子类的情况下,直接得到一个类的子类对象

格式:
new 类名(){
重写 实现抽象方法
};

如果想要多次使用,就在new之前赋给一个对象,这个对象的类型要和原来的抽象类或者接口类类名一致

如果只是使用一次,直接在末尾调用该抽象方法

原文地址:https://www.cnblogs.com/YwhsR0129/p/13653510.html