用什么软件做网站布局,股票做T网站,搜索引擎排名优化方案,做网站应该用什么镜像谈谈对多态性的理解#xff1a;
一个事物的多种形态#xff08;编译和运行时状态不一致性#xff09;
实现机制#xff1a;通过继承、重写和向上转型#xff08;Object obj new 子类()#xff09;来实现。
1.广义上的理解 子类对象的多态性#xff0c;方法的重写
一个事物的多种形态编译和运行时状态不一致性
实现机制通过继承、重写和向上转型Object obj new 子类()来实现。
1.广义上的理解 子类对象的多态性方法的重写方法的重载 子类对象的多态性编译时是父类对象运行时是不确定的子类对象。体现不一致性 方法的重写继承父类后方法的重写子父类方法不一致。体现不一致性 方法的重载方法的多态性方法名一样形参列表不一样表现出不同形态即多态性没有体现出状态不一致性
2.狭义上的理解 Java中多态性主要指子类对象的多态性 格式 Object obj new Xx(…); 父类的引用指向子类的对象 4 Object obj new String(“hell!”); Person per new Man(); 声明是父类实际new的子类对象
3.多态的优点 减少了大量的重载的方法的定义开闭原则 对扩展开放对修改关闭无修改 方法的主要使用场景 应用于方法的形参()中形参类型无法确定写为父类而实际调用方法时传递的是各种各样的子类。不需要再写各种重载的方法直接写一个父类即可。减少了大量的重载的方法的定义 -举例public boolean equals(Object obj) 多态无处不在重点理解 例如开发中大量使用的抽象类和接口其根本不能实例化只能通过子类对象实例化体现为多态性。如果子类对象不能赋值抽象类和接口将没有任何意义。抽象类接口就是基于多态而存在的抽象类接口要子类实例化。即如果没有多态抽象类和接口将没有意义。
4.多态的使用多态new的对象 与 不用多态new对象 多态new的对象 虚拟方法调用。即“编译看左边运行看右边”。屏蔽了子类特有的属性和方法不能调用。一般写在形参上因为没法确定子类是谁 不用多态new对象 方法里面正常new对象即可 注意属性不存在多态性。
5.多态的逆过程
向下转型使用强转符()。为了避免出现强转时的ClassCastException建议强转()之前使用instanceOf进行判断