父类和子类方法的调用

 由于没有找到想要的解释,于是自己就在idea上自测来寻找答案。

关于父类,子类,多态之间方法的调用。

package 思考;

public class 子类调用 {
    public static void main(String[] args){
        Anmial an=new Anmial("蛇君");//父类无法调用子类
        an.eat();
        an.go();
        //an.keep();调用子类报错
        System.out.println("-------------------");
        Anmial d=new Dog();//多态无法调用
        d.go();
        d.eat();//调用的是重构过的方法
        //d.keep();多态调用报错
        System.out.println("-------------------");
        Dog de=(Dog)d;//转换为子类可以使用
        de.keep();
        de.eat();
        de.go();
        System.out.println("-------------------");
        Dog dog=new Dog();//子类调用父类
        dog.go();
        dog.eat();//子类只能使用重构过的方法
        dog.keep();
    }
}
class Anmial{
    private String name;
    public Anmial(){

    }
    public Anmial(String name){
        this.name=name;
    }
    public void eat(){
        System.out.println("吃食物~~~");
    }
    public void go(){
        System.out.println("风紧,扯呼~~~");
    }
}
class Dog extends Anmial{
    public void eat(){
        System.out.println("吃骨头~~~");
    }
    public void keep(){
        System.out.println("狗族无大帝~~~");
    }
}

由此可以看出 

1、父类定义出来的父类对象,可以调用父类的方法,但无法调用子类的方法.

2、子类定义出来的子类对象,可以调用子类的方法,无法调用父类方法.

以上两点相当于一对父子使用自己的东西,因为私有财产神圣不可侵犯的原因不能碰对方的东西.

3、父类定义出来的子类对象(多态),只能调用父类含有的方法,如果重构过的,那么会调用重构过的方法.

4、如果父类定义的子类对象向下转型,就跟第二点一样了,只能使用自己的方法.​​​​​​​

博主也刚接触Java,如果哪个地方有错的话,希望大家能够指出来.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱发博客的嗯哼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值