Java多态

Java多态

java有四大基本特性:多态,封装,继承,抽象,这四大特性就好比四大金刚,很重要
在这里插入图片描述
在我前面的文章中我已经介绍了封装,继承,多态,今天我来讲讲多态
什么是多态
多态就是指一个事物有不同表现形式。比如水有固态,液态,气态三种形态,我首先是个人,然后我也是一名程序员

Java中多态的实现格式
父类类型 对象名=new 子类名称();
注:
父类类型:指子类对象继承的父类类型,或者实现的父接口类型。

//Audi继承自Car类
Car audi=new Audi()

多态中成员的变量使用
口诀:编译看左边,运行看左边
父类类型 对象名=new 子类名称();
即左边是父类类型调用的就是父类的成员变量
下面通过一段代码演示一下

public class Audi extends  Car {
   int num=20;
}
public class Car {
    int num=10;
}
public class Main {
    public static void main(String[] args) {
        Car audi = new Audi();
        System.out.println(audi.num);
    }
}

结果
可以看到调用的是父类的方法
在这里插入图片描述多态中成员方法的使用
口诀:编译看左边,运行看右边
父类类型 对象名=new 子类名称();
对象名.方法名
编译看左边:说明调用的方法中,一定要是左侧的类型说有的方法,在这里就是父类必须要有的方法,否则会编译报错,更不用说运行了
通过代码演示可能更利于理解

public class Audi extends  Car {
    int num=20;
    public int getNum() {
        return num;
    }
}
public class Car {
    int num=10;
}
public class Main {
    public static void main(String[] args) {
        Car audi = new Audi();
        audi.getnum();//这行会报错
    }
}

结果
可以看到编译报错
在这里插入图片描述运行看右边:即运行的时候调用的是子类的方法
老规矩上代码
在这里插入图片描述

public class Audi extends  Car {
    public  void shuchu(){
        System.out.println("这是子类的方法");
    }
}
public class Car {
    public void shuchu(){
        System.out.println("这是父类方法");
    }
}
public class Main {
    public static void main(String[] args) {
        Car audi = new Audi();
        audi.shuchu();
    }
}

结果
我们可以看到调用的是子类方法
在这里插入图片描述多态的好处
拓展性与便利性,即把不同的子类类型都当作父类类型来看待,屏蔽不同子类之间的实现差异,从而写出通用代码达到通用编程的目的
上代码

public class Car {
    public void run(){
        System.out.println("这是车");
    }
}
public class Benz extends Car {
    public  void run(){
        System.out.println("这是奔驰");
    }}
public class Audi extends  Car {
    public  void run(){
        System.out.println("这是奥迪");
    }
}
public class Main {
    public static void main(String[] args) {
        Car audi = new Audi();
        Car benz = new Benz();
        run(audi);
        run(benz);
    }
    public  static  void run(Car car){
        System.out.println("这是什么车呀??");
        car.run();
    }
}

结果
我们可以看到在Main类的run(Car car)方法中,既可以传入Benz类也可以传入Audi类,这就体现了多态的优越性
在这里插入图片描述以上就是多态的一些基础知识,如有错误还请各位批评指正
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值