面向对象随笔(多态)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象随笔(多态)相关的知识,希望对你有一定的参考价值。
一、多态的前提
1.有继承;
2.有重写;
3.父类引用指向子类对象。
二、多态的作用
1.提高代码的维护性;
2.提高代码的扩展性;
三、多态的缺点
不能调用子类特有的方法
但是可以可以向下转型,就可以调用子类的特有方法了
四、多态的实质
多态就是子类向上转型为父类,可以调用父类中定义的所有属性和方法,但是对于只存在与子类中的方法和属性不能调用,若子类重写了父类中的某些方法,在调用这些方法的时候,必定是使用子类中定义的这些方法
五、多态的种类
1.编译时多态
2.运行时多态
六、多态的特点
1.编译时参考父类,如果没有会编译失败
2.运行时: 1)静态方法,运行父类的静态方法(静态属于类,不属于对象,直接用类名.方法调用,与多态无关);
2)非静态方法,运行子类中重写的父类的方法。
代码示例1:
1 public class Vip { 2 3 //定义一个付费VIP会员 4 public void vip() { 5 System.out.println("付费会员"); 6 } 7 } 8 9 public class BeggerVip extends Vip{ 10 11 //定义一个活动会员 12 public void vip() { 13 System.out.println("活动会员"); 14 } 15 } 16 17 public class Test { 18 19 public static void main(String[] args) { 20 //多态调用 21 Vip v = new BeggerVip(); 22 //输出活动会员 23 v.vip(); 24 } 25 }
代码示例2:
1 public class A { 2 3 int a = 1; 4 public void function() { 5 System.out.println(a); 6 } 7 } 8 9 public class B extends A{ 10 11 int a = 2; 12 public void function() { 13 System.out.println(a); 14 } 15 } 16 17 public class Test { 18 19 public static void main(String[] args) { 20 //多态调用 21 A a = new B(); 22 //输出2 23 a.function(); 24 } 25 }
以上是关于面向对象随笔(多态)的主要内容,如果未能解决你的问题,请参考以下文章