文章目录
一、重写(@Override)与重载(Overload)
1.重写
重写用于子类重写继承自父类的方法:
class LaoWang{
public void write() {
System.out.println("老王写了一本《基督山伯爵》");
}
}
public class XiaoWang extends LaoWang {
@Override
public void write() {
System.out.println("小王写了一本《茶花女》");
}
}
优先输出重写后的方法
2.重载
重载用于方法名相同但是参数不同的情况下
class LaoWang{
public void read() {
System.out.println("老王读了一本《Web全栈开发进阶之路》");
}
public void read(String bookname) {
System.out.println("老王读了一本《" + bookname + "》");
}
}
二、final关键字
final 可以用来修饰类,final 修饰的类不允许其他类继承
final class PersonalLoan{}
class CheapPersonalLoan extends PersonalLoan { //编译错误,无法被继承
}
final 可以用来修饰方法,final 修饰的方法不允许被重写
class PersonalLoan{
public final String getName(){
return"personal loan”;
}
}
class CheapPersonalLoan extends PersonalLoan{
@Override
public final String getName(){
return"cheap personal loan";//编译错误,无法被重写
}
public String test() {
return getName(); //可以调用,因为是public方法
}
}
final 可以用来修饰形参时不能修改,修饰局部变量时只能赋值一次
当final可以和static同时使用,构造“全局常量
private final static double PI = 3.14;
三、super关键字
访问父类的属性:super.age
访问父类的方法:super.eat()
四、判断对象是否相同
instanceof:检查是否为该类或者继承自该类
if(animal instanceof cat)
getclass: 严格判断,不考虑继承
if(animal.getClass()==catgetClass())
如果要进行类型转换,我们最好使用instanceof运算符来判断它左边的对象是否是它右边的类的实例,再进行强制转换。