Java中的多态

1:多态的介绍

/**
 * 多态性:一个对象拥有多种形态(如:既是学生,也是人类),这就是对象的多态性.
 *
 * 代码中体现多态性:父类引用指向子类对象.
 * 格式:
 * 父类名称  对象名称 = new 子类名称();
 * 或者:
 * 接口名称  对象名称 = new 实现类名称();
 */
public class polymorphism001 {
    public static void main(String[] args) {
        FuMr jj = new ZiMr();//父类引用指向子类对象.
        jj.mortyOne();//调用子类的方法.
        jj.mortyTow();//子类没有向上找父类,因为继承了父类的方法.
    }
}
class FuMr{

    public void mortyOne(){
        System.out.println("父类方法");
    }
    public void mortyTow(){
        System.out.println("父类特有方法");//不让子类覆盖重写也能调用,会继承下去.
    }
}
class ZiMr extends FuMr{

    @Override
    public void mortyOne(){
        super.mortyOne();//调用父类的方法.
        System.out.println("子类方法");//父类方法的覆盖重写.
    }
}

2:多态中的成员变量

/**
 * 1:成员变量不能进行覆盖重写.
 *
 * 访问成员变量的两种方式:
 * 1:直接通过对象名称访问成员变量:等号左边是谁优先用谁,没有就向上找.
 * 2:简介通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有就向上找.
 */


/**
 * 多态的成员方法使用规则:
 * 1:看new的谁就优先用谁,如果没有就向上找.
 * 成员方法口诀:
 * 编译看左边,运行看右边(就是如果只有子类拥有就不能运行,要父子都拥有.运行的时候运行右边的成员方法);
 * 成员变量口诀:
 * 编译看左边,运行看左边.
 */
public class polymorphism002 {
    public static void main(String[] args) {
        FuMc mm = new ZiMc();//父类引用指向子类对象.
        System.out.println(mm.mun1);//左边是父类,优先用父类的成员变量.
        mm.showOne();/**
                      *子类没有进行覆盖重写,所以这个调用的就是父类里面的方法.
                      *子类如果进行覆盖重写,那么这个就是调用子类的方法.
                      */

        mm.showTow();//父子都有,优先用子类.
        mm.showThr();//子类没有,向上找父类.
        //mm.showFor();父类没有,不能进行编译,编译失败.
    }
}
class FuMc{
    int mun1 = 10;
    public void showOne(){
        System.out.println(mun1);
    }
    public void showTow(){
        System.out.println("父类的方法");
    }
    public void showThr(){
        System.out.println("父类特有的方法");
    }
}
class ZiMc extends FuMc{
    int mun1 = 20;
    public void showTow(){
        System.out.println("覆盖重写父类的方法");
    }
    public void showFor(){
        System.out.println("子类特有的方法");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值