-
继承
在java中继承的关键字是:extends
继承可以获得父类的属性和方法而且子类还可以具有自己的特殊的功能。
** 例:这是一个圆public class Circle {
private double radius; public Circle(double r){ this.radius=r;
}
圆有半径的属性public class Cylinder extends Circle{
private double hight;
public Cylinder(double r,double h) {
super®;
hight=h;
}
这是一个圆柱,圆柱继承了圆,圆柱也有了半径的属性,而且圆柱还有自己特殊的高
** 在java中支持单继承,一个子类只能有一个父类,但是一个父类可以有多个子类。
不支持多继承的原因:如果两个父类多同样的方法,子类继承之后,调用的时候,会出现不确定性。不知道调用哪一个
java还支持多重继承:
例如:A extends B,B extends C
** this和super
当局部变量和成员变量同名用this
当子类变量和父类变量同名用super
- 多态
一种事物多种形态
例如:a=new Dog();
父类的引用指向子类的对象 - 多态分为编译时和运行时
例如:Animal a=new Dog();
编译时:javac 编译器认为他是一个动物,因此只能调用动物的方法
运行时:java 运行时又会找具体的实现类(Dog),就是会认为他是一条狗 - 多态在之后在写方法的时候,参数类型一般是父类的,如果调用了子类特有方法,只能是子类的。
- 封装
封装是方法选择性的暴露
有权限修饰符
![权限修饰符的访问权限] (https://img-blog.csdn.net/20170613235336475?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ExMDUxODUyNTcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
重载(overload)
在同一个类中方法名相同,但是方法中的参数列表不同
重写(override)
在重写父类方法的时候:要注意返回值、方法名、参数列表必须和父类的一致。
父类中的功能不满足子类的需求的时候,需要重写
在重写的时候子类修饰符方法的权限一定要大于父类修饰符方法的权限,例如:父类是默认的(default)子类必须大于这个修饰符,子类(public)的。
重写也叫覆盖。