5.6Java多态的介绍

5.6Java多态的介绍

多态(polymorphism)

静态绑定和动态绑定

绑定

概念:

通过显示声明或隐式声明将一事务分配给另一事务

方法:

  • 赋值给变量

  • 将方法调用关联上某一个具体的方法

静态绑定(静态联边)(所有的属性都是静态绑定):编译期完成,方法包括
  1. 静态方法---static

  2. 构造器

  3. private方法---私有方法

  4. 关键字super调用的方法

动态绑定(动态联编):执行期间判断类型完成,降低了代码的执行速度

Java比C/C++慢的主要因素之一

继承了父类的子类里面重写了父类的方法---在执行期间new的对象在执行期间才能够真正的找到该方法---编译期间不会真实的去堆空间开辟对象--->看实例化的对象是谁

多态

相同事务,调用相同方法,参数相同,表现行为不同

以封装和继承为基础。子类以父类身份出现,但做的事情时还是以自己的方法实现

Father类:

package inheritance;

/**
* 定义一个父类,里面写一些方法
* @author Lucifer
*/
public class Father {

   /*定义父类方法*/
   public void KongFu(){
       System.out.println("九阳神功!");
  }
}

Son类:

package inheritance;

/**
* 继承父类
* @author Lucifer
*/
public class Son extends Father{

   @Override
   public void KongFu(){
       System.out.println("九阴真经!");
  }

   public static void testStatic(){
       System.out.println("Son Static");
  }
}

Test类:

package inheritance;

/**
* 测试继承后的输出结果
* @author Lucifer
*/
public class Test {
   public static void main(String[] args) {

       /*实例化对象输出*/
       Son s = new Son();
       s.KongFu();
       Father f = new Son();
       f.KongFu();
       Father f2 = new Father();
       f2.KongFu();
  }
}

 

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14736448.html