zoukankan      html  css  js  c++  java
  • 多态

    前期绑定与动态绑定

    • 前期绑定

    程序执行前就已经知道方法所属的类

    注: final 、static、private修饰的方法是前期绑定,其余方法都是后期绑定

    • 后期(动态)绑定

    运行时根据对象的类型进行绑定(面向接口)

    注:使用final可以关闭动态绑定,但不会增加性能

    构造器

    1. 不具有多态,实际是static方法
    2. 父类构造器参数列表必须与子类相同,因为在new子类对象时首先会创建父类对象
    3. 主要用于初始化

    协变返回类型

    方法可以返回返回类型的导出类型

    class AA{
    }
    class BB extends AA{	
    }
    	
    class A{
    	AA a() {return new AA();}
    }
    class B extends A{
    	AA a() {return new BB();}//允许返回更具体的类型
    }
    

    继承设计

    • 向上转型

    子类与基类接口方法相同,基类无需知道子类的信息,使用父类方法时只需子类向上转型

    • 向下转型

      向上转型的缺点: 当子类扩展了基类方法,使用向上转型不可以使用新方法,造成信息丢失

        class A{
        	void a() {}
        }
        class B extends A{
        	void b() {}
        }
        public class DowntransforTest {
        	public static void main(String[] args) {
        		A[] x = {new A(),new B()};
        		((B)x[0]).b();//报类转型异常:java.lang.ClassCastException  
                ((B)x[1]).b();
        	}
        }
  • 相关阅读:
    返回三级联动的JSON数据
    返回三级联动的JSON数据
    python3访问map
    第十八讲、中介者模式
    第十七讲、命令模式
    第十六讲、模板方法模式
    第十五讲、组合模式
    第十四讲、享元模式
    第十三讲、装饰器模式
    第十二讲、桥接模式
  • 原文地址:https://www.cnblogs.com/mdc1771344/p/9908799.html
Copyright © 2011-2022 走看看