java的多态

java的多态

多态的好处:
无论右边换成的是什么子类对象,等号左边调用方法都不会改变。
代码中体现多态性,其实就是:父类引用指向子类对象
父类名称 对象名 =new 子类名称();
或者:接口名称 对象名 =new 实现类名称();
多态访问成员变量的方式有两种:
1.直接通过对象.来访问。看的是等号左边的类,如果没有向上找。成员变量不能覆盖重写。
2.间接通过成员方法来访问。看该方法属于谁,优先用谁,没有就向上查找。
多态的成员方法:
((multi_soon) multi).methodB();
口诀:编译看左边,运行看右边
向上转型,绝对是安全的,小范围变成大范围,缺陷:转型后,就无法调用子类特用的方法。
向下转型,把对象还原回回小范围。例子:格式 子类名称 对象名 =(子类名称)父类对象;
类似于强制类型转换,但是是还原,也就是说不能变成其他的。
((multi_soon) multi).methodB();
在这里插入图片描述
在这里插入图片描述下面来代码示例:
父类代码

package Test.Multi;

public class multi_father {
    int num=10;
    public void method(){
        System.out.println("这是父类方法");
    }
    public void methodFu(){
        System.out.println("父类特有方法");
    }
    public void methodA(){
        System.out.println(this.num);
    }
}

子类代码

package Test.Multi;

public class multi_soon extends multi_father {
    @Override
    public void method(){
        System.out.println("子类方法");
    }
    int num=20;
    public void methodA(){
        System.out.println(this.num);
    }
    public void methodB(){
        System.out.println("子类特有方法");
    }
}

示例代码:

package Test.Multi;

public class demo_multi {

    public static void main(String[] args) {
        //多态写法
        //左类父类应用,指向右侧子类.主要看右边的new类,如果子类没有会向上找父类
        multi_father multi=new multi_soon();
        multi.method();
        //num=10 父类的num
        System.out.println(multi.num);
        System.out.println("***********************");
        multi.methodA();
        System.out.println("***********************");
        //multi.methodB();这样会报错,编译看左边,左边是father 里面没有methodB方法编译会报错。
        ((multi_soon) multi).methodB();
        multi.methodFu();
    }
}

好了大家有兴趣可以来我自己的网站来看看,http://embracechw.top/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值