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

java复习第十天[多态]

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

java复习第十天[多态]

1.多态概念:

简介:多态是面向对象继承,封装之后的一大特性.

生活中学生是人,王五是一个学生,同时也是人,那王五身上就出现了多态的情况,即是学生也是人,那java中面向对象同样也可以描述一个事物的多种形态。在java中实现多态需要三个条件:

子类继承父类子类重写父类的方法父类引用指向子类对象(多态的主要体现)

2.父类引用指向子类对象:

代码中格式为:

父类类型 name=new 子类类型();

父类引用指向子类,就是父类对象new一个子类对象,为了同一个行为具有多种的表达形式.

注意:

多态是方法的多态,不是属性的多态多态是一个接口使用不同实例来实现不同方法的操作. 3.多态调用技巧:

调用成员变量看左边:

Animal animal=new Dog();
System.out.println(animal.age);

调用方法看右边:

Animal animal=new Dog();
animal.run();
4.关键字instanceof:

关键字instanceof返回值为布尔类型用来判断是不是这个的实例化,与is-a的关系,案例如:

Animal animal=new Animal();
Animal dog=new Dog();
Animal cat=new Cat();
System.out.println(dog instanceof Animal);//理解为dog对象是Animal吗? true
System.out.println(animal instanceof Dog);//理解为animal对象是Dog吗? false 动物不止有狗
System.out.println(cat instanceof Animal);//理解为cat对象是Animal吗? true
System.out.println(animal instanceof Cat);//理解为animal对象是Cat吗? false 动物不止有猫
5.上下转型: 

向上转型:子类对象转换为父类,小转大自动转,多态本身就是向上转型

父类类型 name=new 子类类型();

子类对象转为父类对象时可能会丢失本身独有的方法.

向下转型:父类对象转为子类,大转小强制转换

子类类型 name=(子类类型)父类对象;

用途:一般需要使用子类独有的方法才会向下转型

6.经典案例

答出下列代码会输出什么:

public class A {
    public void Eat(){
        System.out.println("爱吃大米饭");
    }
}
class B extends A{
    @Override
    public void Eat() {
        System.out.println("爱吃红烧肉");
    }

    public void Play(){
        System.out.println("爱玩游戏");
    }
}
class C extends B{
    @Override
    public void Play() {
        System.out.println("爱刷短视频");
    }
}

class Test_{
    public static void main(String[] args) {
        A a=new A();
        A b=new B();
        B c=new C();
        a.Eat();
        b.Eat();
        c.Play();
    }
}

创作难免有错误和不当的地方,还请大家多多指教。

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

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

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