Java语法-多态

Animal obj = new Dog(); // obj 既被看作狗形态,又被看作动物形态
Person obj = new Student(); // obj 既被看作学生形态,又被看作人类形态
Employee obj = new Teacher(); // obj 既被看作教师形态,又被看作员工形态

1、多态 = 对象的多态 = 左父右子 Fu obj = new Zi();

2、父类、子类的成员方法调用规则
多态的对象既可以使用父类的方法,也可以使用子类的方法;
如果父类方法被子类方法覆盖重写,那么执行子类的方法

3、父类、子类的同名成员变量调用规则
obj 前面是谁用谁的成员变量;这个类没有这个成员变量则向上查找;
如果一个对象多态的话,那么一定优先用父类的成员变量;
没有则向上查找,也就是说,和子类的成员变量一点关系都没有了。

4、使用多态后,不能访问子类成员变量、不能访问子类特有的方法;
只能访问子类覆盖的方法

public class Fu {

    public int num = 10;

    public void method(){
        System.out.println("父类方法");
    }

    public void methodFu(){
        System.out.println("父类特有的方法");
    }
}
public class Zi extends Fu{

    public int num = 20;

    public void method(){
        System.out.println("子类的覆盖方法");
    }
}
public class test {
    public static void main(String[] args) {

        Fu obj = new Zi();
        obj.method();
        obj.methodFu();
        System.out.println(obj.num);
    }
}
执行结果:
子类的覆盖方法
父类特有的方法
10
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值