java继承多态的特点,成员访问和转换的详细讲解

前言

我们在这里想一个场景:
人物:
小明:精通LOL
小明父亲:精通Java
事件:
某天,小明父亲出去上课,小明在家LOL
突然有个无赖进入小明家中,如果小明爸爸不给他讲解,就赖着不走
此刻小明在想
爸爸现在没在家,但是不回答的话此人,此人必定不走
所以小明,化妆成爸爸的模样,解答此人问题
送走此人后继续LOL

代码

小明爸爸的代码

/**
 * 小明父亲
 * @author yibox
 * @date 2019 09 12 11:30
 */
public class Father {
    public int age = 40;
    public void teach(){
        System.out.println("讲解Java");
    }
}

小明代码

/**
 *小明代码
 * @author yibo
 * @date 2019 09 12 11:32
 */
public class Xiaom extends Father {
    public int age = 18;
    @Override
    public void teach(){
        System.out.println("讲解LOL攻略");
    }
    public void playGame(){
        System.out.println("在家打LOL");
    }
}

无赖上门请教

/**
 * 多态转换,成员访问,详细讲解
 * @author yibo
 * @date 2019 09 12 11:35
 */
public class GotoTeach {
    public static void main(String[] args) {
        //xiao开始扮演父亲
        //向上转型,调用左边类的方法,结果为右边同名的方法
        Father xiaomF = new Xiaom();
        //个人介绍了一下自己的年龄
        System.out.println(xiaomF.age);
        xiaomF.teach();//虽然是扮演,但是用到方法时,还是调用自己的
        //xiaomF.playGame();//专业扮演,父亲会啥我就会啥,但是父亲不会的,我也不能会(自身特有的方法不能使用)
        System.out.println("=======================================");
        //无赖走了, 小明褪去伪装,继续做小明
        //向下转型,从向上转型退回到本类型
        Xiaom xiaomT =(Xiaom)xiaomF;
        System.out.println(xiaomT.age);
        xiaomT.playGame();
        xiaomT.teach();
    }
}

输出结果

在这里插入图片描述

注意

名称特点
成员变量编译看左边,运行看左边。
构造方法创建子类对象时,访问父类的构造方法,对父类中数据初始化
成员方法编译看左边, 运行看右边
静态方法编译看左边,运行看左边。

左右表示等号左右

//向上转型,调用左边类的方法,结果为右边同名的方法
    Father xiaomF = new Xiaom();
//向下转型,从向上转型退回到本类型
    Xiaom xiaomT =(Xiaom)xiaomF;

继承的时候:
子类中有和父类中一样的方法,叫重写。
子类中没有父亲中出现过的方法,方法就被继承过来了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值