20171009-Java入门笔记(二)super、多态、instanceof

一、super的使用

在父类中,如果出现有参构造方法,则养成习惯加上无参构造方法。


二、多态——可以通过继承类和实现接口

Person p = new Student();
p.study();//方法
p.name;//字段
1、非静态方法

在编译的时候,程序首先检查父类Person中是否有该方法,如果没有则会继续向上查找Person的父类中是否包含该方法,查完还没,则会报错。运行时,先从子类Student中调用study()方式,如果没有,则查找其父类是否有该方法,依次向上直至结束,没有则报错。

此处需注意在使用多态方式创建的对象,调用父类没有的方法,会报错。

2、静态方法

父类中的静态方法是不会被覆写的,即使子类和父类有同名静态方法,如果使用多态方式进行调用,只会调用父类方法。

3、字段

如果子类有和父类同名的字段,在直接调用时,只会取父类的值

4、解决父类没有,或只使用子类字段和方法

采用强转,在使用强制转换时,一定要先用instanceof进行判断

Student stu = (Student)p;

三、instanceof

只能用于引用类型

A instanceof B,A 是对象变量,B是接口或者类,只要A运行时类型是B或者是B的子类,其结果都为true

引出:Object中有个getClass()方法,该方法会直接获取运行时类型,而非编译时(多态情况下)。


四、final

1、修饰类,表示该类不能被继承,无子类,如String、Integer。

2、修饰方法,表示该方法不能被覆写,但不能用于构造方法

不能被覆写的方法:

使用private、static、final修饰的方法
3、修饰变量,表示最终变量,一旦第一次有值,则不能再改变,一般用于全局常量(public static final)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值