java笔记

本文详细介绍了Java中构造器的作用,强调了在创建子类时会默认调用父类无参构造器的事实。同时,对多态进行了深入探讨,解释了编译类型与运行类型的区别,并通过实例展示了向上转型调用方法的规则。文章还提到了动态绑定机制,说明了属性调用看编译类型,方法调用看运行类型的原则。
摘要由CSDN通过智能技术生成

Java学习笔记

构造器总结
注意:创建子类时总会默认调用父类的无参构造器
对象在创建的时候也会默认创建一个无参构造器

多态的复习与总结
1 对象的编译类型和运行类型可以不一致
2 编译类型在初始化对象是就已经确定了,不能够改变
3 编译类型不能改变,但是运行类型可以改变
4 编译类型是初始化对象时候“=”的左边,运行类型是“=”的右边
举例Food food = new Fish("罗非鱼"); food运行类型是Fish,编译类型是food /// food = new bone("大骨头“) 此例中,引用food的运行类型变成了bone,编译类型仍然是food

向上转型调用方法的规则如下
(1)可以调用父类中的所有成员(需遵守访问权限)
(2)但是不能调用子类的特有的成员【因为在编译阶段,能调用哪些成员,是由编译类型来决定的】
animal.catchMouse();错误
(3)最终运行效果看子类(运行类型)的具体实现, 即调用方法时,按照从子类(运行类型)开始查找方法,然后调用,规则我前面我们讲的方法调用规则一致。

public class Animal {
    String name = "动物";
    int age = 10;
    public void sleep(){
        System.out.println("睡");
    }
    public void run(){
        System.out.println("跑");
    }
    public void eat(){
        System.out.println("吃");
    }
    public void show(){
        System.out.println("hello,你好");
    }

}
public class Cat extends Animal {
    public void eat(){//方法重写
        System.out.println("猫吃鱼");
    }
    public void catchMouse(){//Cat特有方法
        System.out.println("猫抓老鼠");
    }
}
		animal.eat();//猫吃鱼..      子类的具体实现,即调用方法时,从子类开始查找。
        animal.run();//跑
        animal.show();//hello,你好
        animal.sleep();//睡
        animal.catchMouse();//会报错,编译类型中不包括catchMouse方法

注意区分:属性调用时看编译类型,方法调用时看运行类型(子类)(前提是父类也有这个方法,也就是子类重写的这个方法)

public class PolyDetail02 {
    public static void main(String[] args) {
        //属性没有重写之说!属性的值看编译类型
        Base base = new Sub();//向上转型
        System.out.println(base.count);// ? 看编译类型 10
        Sub sub = new Sub();
        System.out.println(sub.count);//?  20
    }
}

class Base { //父类
    int count = 10;//属性
}
class Sub extends Base {//子类
    int count = 20;//属性
}

动态绑定机制
1.当调用对象方法的时候,该对象会和该对象的内存地址/运行类型进行绑定
2.当调用对象属性的时候,没有动态绑定机制,哪里声明,哪里使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值