java基础特性-多态_JAVA_编程开发_程序员俱乐部

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

java基础特性-多态

 2013/9/2 21:13:53  hellowuyao  程序员俱乐部  我要评论(0)
  • 摘要:多态一、概念:不同方法名中的不同实现。不同实现的有两种表现形式:重写(overwrite)和重载(overload)。1.重写(overriding):在有继承关系的两个类中,子类继承了父类的方法,当子类对象实例赋值给父类对象引用时,通过父类调用方法时,是调用的子类的方法,这种方式叫子类覆盖/重写了父类方法,也叫动态链接或者动态方法调用。总结:因此通过父类的引用不同子类中的重写的方法而实现不同的行为,则实现了多态性。例子:classFather{publicvoidshow(){System
  • 标签:Java

多态

?

一、概念:

不同方法名中的不同实现。

不同实现的有两种表现形式:重写(overwrite)和重载(overload)。

?

1.重写(overriding):在有继承关系的两个类中,子类继承了父类的方法,当子类对象实例赋值给父类对象引用时,通过父类调用方法时,是调用的子类的方法,这种方式叫子类覆盖/重写了父类方法,也叫动态链接或者动态方法调用。

?

总结:因此通过父类的引用不同子类中的重写的方法而实现不同的行为,则实现了多态性。

?

例子

class="java" name="code">class Father{
        public void show(){
            System.out.println('这是父类执行的方法');
        }
}

class ChildA extends Father{
       public void show(){
            System.out.println('这是子类A执行的方法');
       }
}

class ChildB extends Father{
       public void show(){
            System.out.println('这是子类B执行的方法');
       }
}

class Test{
      public static void main(String[] args){
             Father a = new ChildA();
             Father b = new ChildB();
             a.show();
             b.show();
      }
}

?

控制台输出:

这是子类A执行的方法

这是子类B执行的方法

?

2.重载(overloading):在同一类中,两个或两个以上一样的方法名,但是不同的参数或者返回类型。

?

总结:通过该类实例调用同一样方法名不同参数的方式实现了不同行为,则实现了多态性。

?

例子:

class Test {
        public void show(String str){
                 System.out.println("字符串参数:"+str);
        }

        public void show(int a,int b){
                 System.out.println("数字型参数:"+a+","+b);
        }

        public static void main(String[] args){
                 Test t = new Test();
                 t.show("helloworld");
                 t.show(1,2);
        }
}

?

控制台输出:

字符串参数:helloworld

数字型参数:1,2

?

?

上一篇: java基础特性-继承-代码分析 下一篇: 没有下一篇了!
发表评论
用户名: 匿名