java基础特性-多态-代码分析(一)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java基础特性-多态-代码分析(一)

java基础特性-多态-代码分析(一)

 2013/9/2 21:13:52  hellowuyao  程序员俱乐部  我要评论(0)
  • 摘要:例子:classFather{publicvoidfunc1(){func2();}//这是父类中的func2()方法,因为下面的子类中重写了该方法//所以在父类类型的引用中调用时,这个方法将不再有效//取而代之的是将调用子类中重写的func2()方法publicvoidfunc2(){System.out.println("AAA");}}classChildextendsFather{//func1(inti)是对func1()方法的一个重载//由于在父类中没有定义这个方法
  • 标签:Java 代码 分析

例子

class="java" name="code">class Father{

  public void func1(){

  	func2();

		}

  //这是父类中的func2()方法,因为下面的子类中重写了该方法
  //所以在父类类型的引用中调用时,这个方法将不再有效
  //取而代之的是将调用子类中重写的func2()方法
  public void func2(){

  	System.out.println("AAA");

  }
}

class Child extends Father{

  //func1(int i)是对func1()方法的一个重载
  //由于在父类中没有定义这个方法,所以它不能被父类类型的引用调用
  public void func1(int i){
  	System.out.println("BBB");
  }

  //func2()重写了父类Father中的func2()方法
  //如果父类类型的引用中调用了func2()方法,那么必然是子类中重写的这个方法
  public void func2(){
  	System.out.println("CCC");
  }

}

public class Test {

  public static void main(String[] args) {

  Father child = new Child();

  child.func1();//打印结果将会是什么?

  }

}

?

?

打印输出:

“CCC”

?

对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;

?

二、该引用只能调用父类中定义的方法和变量;

?

三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)

?

四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。

发表评论
用户名: 匿名