黑马程序员技术交流社区

标题: 对于多态如何理解,求大神讲解 [打印本页]

作者: 13414309233F    时间: 2016-6-18 22:21
标题: 对于多态如何理解,求大神讲解
public class DuoTai {
        public static void main(String[] args) {
                Animal a = new Dog();//这个可以叫做多态吗?如果不算多态的话,为什么不会报错呢?算是多态的话,多态不是要有方法重写吗?如何理解
                a.show();
        }
}
class Animal{
        public void show(){
                System.out.println("super");
        }
}
class Dog extends Animal{
        public void method(){
                System.out.println("zi");
        }
}
作者: 大笑哈哈    时间: 2016-6-18 23:13
不算多态,因为没有重写方法.
继承 , 方法重写, 父类引用指向子类对象只是多态的一种体现形式
父类调用指定方法,不同子类重写的方法不同,造成不同子类的表现形式不同
   比如
       理发师和演员 都继承 人 类;
          人类 人 = new 理发师();     人.cut ();   理发师就会剪头发
         人类 人 = new 演员();         人.cut();   演员就会停止演戏
      人调用相同的方法造成不同的表现形式
方法的重载也是多态 比如
                                    eat(肉){  对象就知道吃肉 }      
                                   eat(面){  对象知道吃面   }
对于调用相同方法给定不同参数,对象有多种表现形态.   
以上为个人理解,错误请指出,感谢万分.
作者: danielchung6600    时间: 2016-6-18 23:29
进来学习
作者: qq6505520    时间: 2016-6-18 23:33
学习了,学习了
作者: 黑猫的消失    时间: 2016-6-18 23:49
二楼总结的很好,学习了!
作者: sgzqsw    时间: 2016-6-19 09:52
总结的不错,学习一下。
作者: dreamhunter    时间: 2016-6-19 22:08
大笑哈哈 发表于 2016-6-18 23:13
不算多态,因为没有重写方法.
继承 , 方法重写, 父类引用指向子类对象只是多态的一种体现形式
父类调用指定 ...

有两点疑问,第一是什么是方法的重载也是多态?
                  第二是,多态是只针对方法的么?
作者: dreamhunter    时间: 2016-6-19 22:09
大笑哈哈 发表于 2016-6-18 23:13
不算多态,因为没有重写方法.
继承 , 方法重写, 父类引用指向子类对象只是多态的一种体现形式
父类调用指定 ...

有两点疑问,第一是什么是方法的重载也是多态?
                  第二是,多态是只针对方法的么?
作者: guyue    时间: 2016-6-20 23:21
多态不用重写方法
作者: 神的指纹    时间: 2016-6-20 23:29
过来看一下
作者: 读书||养猪    时间: 2016-6-21 00:17
多态有3点
必须有继承或者实现关系
要有方法重写
要有父类引用指向子类对象叫多态
作者: caohao    时间: 2016-6-21 00:49
单纯的多态没有多大意义,多态应用最多的就是作为参数传递,
作者: 戎马生涯    时间: 2016-6-21 10:01
多态和重写方法没关系~~~
作者: 何亚辉    时间: 2016-6-21 20:58
你这个应该只能算是父类引用指向子类对象,,  是多态的一个条件之一而已
作者: 19931020    时间: 2016-6-21 21:08
总结的不错,学习一下
作者: 大笑哈哈    时间: 2016-6-22 21:09
dreamhunter 发表于 2016-6-19 22:09
有两点疑问,第一是什么是方法的重载也是多态?
                  第二是,多态是只针对方法的么? ...

重写时父子类多态性的一种表现.
重载是类中多态性的一种表现.
一个类中有重载方法,当你传入不同参数,就有不同的表现行为.

多态是事物的多种表现形态,当然只针对行为,就是方法.
作者: dreamhunter    时间: 2016-6-22 22:10
了解了,谢谢大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2