面向对象三大特性:封装、继承、多态
1.方法重写
方法重写(Override)区别于方法重载(Overloading):
>方法重写是在子类中对父类方法进行方法体的重写,要求重写后返回值形参与父类一致,要求同名同参
>方法重载是指在类内部对方法的形参进行改写,要求同名异参
public class SuperClass{
public string m(string str){
return "super"+str;
}
}
public class SonClass extends SuperClass{
@Override
public string m(string str){
return "son"+str;
}
}
2.访问权限修饰符
权限修饰符主要针对成员变量和成员方法
| 修饰符 | 类内部 | 同一包 | 子类 | 任何地方 |
| private | Yes | |||
| default | Yes | Yes | ||
| protected | Yes | Yes | Yes | Yes |
| public | Yes | Yes | Yes | Yes |
class的权限修饰可以用public和default
3.关键字super
super与this类似,主要用在构造器和重写的方法内如下代码所示:
public class Circle {
private double radius;
public Circle(){
radius=1.0;
}
public void setRadius(double radius){
this.radius = radius;
}
public double getRadius(){
return radius;
}
public double findArea(){
return Math.PI*Math.pow(radius, 2);
}
}
public class Cylinder extends Circle{
private double length;
public Cylinder(){
super();
length=1.0;
}
public void setLength(double length) {
this.length = length;
}
public double getLength() {
return length;
}
public double findVolume(){
return length*super.findArea();
}
}
最好在父类中构造无参构造器,否则编译器可能会报错,提示没有可继承的构造器(Constructors)
原文:https://www.cnblogs.com/annofyf/p/9264433.html