栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Java的多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Java的多态

关于多态

一,含义
所谓多态,是指方法有两种形态,在编译期有一种形态,运行期有一种形态,编译期叫做静态绑定,运行期叫做动态绑定。
二,多态存在的三个必要条件

1,继承,

(可以看看我上一篇关于继承的博客)

2,重写,

方法的执行标准取决于子类是否重写此方法,子类重写的话就调用子类的方法,若未重写,就调用父类的方法,且父类必须有此方法。

3,父类型引用指向子类型对象:

Father d=new Child();
三,多态的效果

1,对于指向子类对象的父类来说,在编译期间只能调用父类方法,不能直接调用子类的方法。

2,对于父子类都有的非静态方法来说,指向子类的父类对象最终调用子类的重写方法。

3,对于父子类都有的静态方法来说,指向子类的父类对象最终调用父类中的方法,与指向的对象无关。

4,多态可以屏蔽不同子类的差异性而编写通用代码,从而产生不同的效果。
public class Animal
{
    public int name;
    public Animal()
    { }

	//父类的方法
    public void eat()
    {
        System.out.println("动物吃食物");
    }
    public void move()
    {
        System.out.println("动物移动");
    }
}
class Dog extends Animal
{
    public Dog()
    { }
    
    //子类的方法
    public void eat()
    {
        System.out.println("小狗吃骨头");
    }
    
    //父类中没有的方法,不能在子类中重写,否则会编译错误。
}

class Testc
{
    public static void main(String[] args)
    {
        Animal ar=new Dog();
        //父类型引用指向子类型对象
        ar.eat();
        //对于父子类都有的非静态方法来说,调用子类的重写的方法。
        ar.move();
        //父类中有,但子类中没有,所以最终调用父类的方法。
    }
}

运行结果

ps,对于子类中有的方法,而父类中没有的方法,会编译错误。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861075.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号