面向对象三大特性:封装、继承、多态
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