A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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");
        }
}

16 个回复

倒序浏览
不算多态,因为没有重写方法.
继承 , 方法重写, 父类引用指向子类对象只是多态的一种体现形式
父类调用指定方法,不同子类重写的方法不同,造成不同子类的表现形式不同
   比如
       理发师和演员 都继承 人 类;
          人类 人 = new 理发师();     人.cut ();   理发师就会剪头发
         人类 人 = new 演员();         人.cut();   演员就会停止演戏
      人调用相同的方法造成不同的表现形式
方法的重载也是多态 比如
                                    eat(肉){  对象就知道吃肉 }      
                                   eat(面){  对象知道吃面   }
对于调用相同方法给定不同参数,对象有多种表现形态.   
以上为个人理解,错误请指出,感谢万分.
回复 使用道具 举报
进来学习
回复 使用道具 举报
学习了,学习了
回复 使用道具 举报
二楼总结的很好,学习了!
回复 使用道具 举报
总结的不错,学习一下。
回复 使用道具 举报
大笑哈哈 发表于 2016-6-18 23:13
不算多态,因为没有重写方法.
继承 , 方法重写, 父类引用指向子类对象只是多态的一种体现形式
父类调用指定 ...

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

有两点疑问,第一是什么是方法的重载也是多态?
                  第二是,多态是只针对方法的么?
回复 使用道具 举报
guyue 中级黑马 2016-6-20 23:21:22
9#
多态不用重写方法
回复 使用道具 举报
过来看一下
回复 使用道具 举报
多态有3点
必须有继承或者实现关系
要有方法重写
要有父类引用指向子类对象叫多态
回复 使用道具 举报
单纯的多态没有多大意义,多态应用最多的就是作为参数传递,
回复 使用道具 举报
多态和重写方法没关系~~~
回复 使用道具 举报
你这个应该只能算是父类引用指向子类对象,,  是多态的一个条件之一而已
回复 使用道具 举报
总结的不错,学习一下
回复 使用道具 举报
dreamhunter 发表于 2016-6-19 22:09
有两点疑问,第一是什么是方法的重载也是多态?
                  第二是,多态是只针对方法的么? ...

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

多态是事物的多种表现形态,当然只针对行为,就是方法.
回复 使用道具 举报
了解了,谢谢大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马