从算法转开发的第二天(Java入门篇)

第二天,进度 page144-173

今天遇到了一个小状况,就是page144-154这一部分是讲关于jre和javadoc的知识,内容比较难理解,且考虑到目前可能用的不多,所以决定跳过这一部分,从page155的继承和多态开始学习

记录

抽象类不能实例化,但可以定义一个抽象类的对象来引用非抽象子类的对象

可以用instanceof判断一个对象是否引用了该类或该类的某个子类,若引用了该类的子类,则(对象 instanceof 该类)返回true值

可以用final标记类或方法以阻止继承,即不能创造子类(当final标记类)或在子类中重载该方法(当final标记方法),另,若final标记了类,则该类中所有方法都会被标记为final

一个超类对象要调用子类中的方法,则该方法必须在超类中出现过,如果要调用的一个方法在子类被重载了,且重载后参数类型与重载前相同,则优先调用子类里的该方法

this能调用另一个构造器,如

public Employee(double s){
    //public Employee(String ,double);   --  一个简写的构造器    
    this("Employee #" + nextId , s);
    nextId++;
}

关于jre的理解

jre相当于是一个针对class文件适配(像手机系统主题中的软件深度适配之类的适配)的压缩包,里面还有清单目录和javadoc注释文档 

Manager boss = new Manager("cyy", 50000, 1999, 12, 1);
Employee[] staff = new Employee[3];
staff[0] = boss;

staff[0].setBonus(500);   //error
staff[0].getSalary();    //ok

​

staff[0]使用setBonus方法修改bonus值会报错,但却可以使用getSalary方法访问bonus的值

这里的staff[0]被编译器视作Employee类,所以staff[0]不能访问Manager里的任何字段,若staff[0]要调用引用了的子类中的方法,则该方法必须在超类中出现过,Manager类中重载了getSalary方法,但没有重载setBonus方法,如果要调用的一个方法在子类被重载了,且重载后参数类型与重载前相同,则优先调用子类里的该方法

关于抽象的作用

抽象类一般用于祖宗类,凡是含有抽象方法的类必须定义为抽象类,抽象方法可以理解为是一个模板,它的各个子类都需要用到这个模板,如果不用抽象方法实现(它的各个子类都需要用到这个模板)时就需要对在祖宗类该方法进行返回空值或返回null之类的处理,比较不规范,用abstract标记为抽象比较规范

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值