Java学习笔记_180704_类继承

面向对象三大特性:封装、继承、多态

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)

猜你喜欢

转载自www.cnblogs.com/annofyf/p/9264433.html