多态:定义一个父类,里面写方法a,子类继承父类并重写方法a,最后实例化
父类 f=new 子类;
f.方法a();
输出的结果是子类方法a的内容
继承:定义一个父类,里面写方法a,子类继承父类并重写方法a,最后实例化
子类 z=new 子类;
z.方法a();
输出的结果是子类方法a的内容
不管是继承还是多态,都可以输出方法a的内容,为什么还要多态呢?
刚刚学多态,不知道这样想对不对,望大家多多指正
继承:如果创建的子类中需要用到父类的方法或者成员变量,就继承父类
多态:继承了父类之后,不太满意父类中的方法,可以试着重载或者重写父类的方法
就好比去饭店吃饭,儿子继承了父亲去饭店吃饭的这种行为,父亲去的是潮汕牛肉火锅,但是儿子不想去,所以就重载此方法,可以去爽翻天火锅,也可以区洪七公火锅店,这就方法重载了。
选定了火锅店之后,选择吃什么种类的火锅,父类吃鸳鸯锅,子类不想吃,这时候重写方法,选择麻辣锅。多态大概就是这样
这不是有不一样的地方吗
多态:
父类 f=new 子类;
用父类的引用,却输出的子类的内容
继承:
子类 z=new 子类;
用子类的引用,输出的是子类内容,这个比较正常
多态被广泛应用于游戏开发和界面设计中
如果再写一个子类b,重写该方法,那么创建的b类对象就会是调用b类中对应的方法,运行的结果与z是不一样的。比如父类中一个方法叫休息,一个子类重写休息方法为看书,另一个子类重写休息方法为睡觉,那么虽然调用的都是休息方法,但是不同的子类的休息方法是不同的。一方面既减少了代码量又提高了可读性,另一方面也符合我们对现实的认知,我目前就这样理解多态。