继承和多态
一、继承
-
概念
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为,继承提供了软件复用功能。 -
继承的使用
class父类 {
}
class子类 extends父类 {
} -
注意事项
1、JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类。
2、子类只能继承父类所有非私有的成员(成员方法和成员变量)。
3 、子类不能继承父类的构造方法,但可以通过super关键字去访问父类构造方法。 -
super关键字
super.成员变量 调用父类的成员变量
super(…) 调用父类的构造方法
super.成员方法 调用父类的成员方法
二、多态
- 概念
同一操作作用于不同的对象,产生不同的结果。基类的引用,引用的是派生类的对象。
class Shape{
void getArea(){//面积
System.out.println("长*宽");
}
void getCir(){//周长
}
}
class Circle extends Shape{
@Override
void getArea(){
System.out.println("长*宽");
}
class TestDemo{
public static void main (String[] args){
Shape shape = new Circle();
shape.getArea();
}
}
Animal a = new Cat();
Animal b = new Dog();
a所引用的对象类型是Cat类型
b所引用的对象类型是Dog类型
对象类型判断:
if(a instanceof Cat){//判断a是否引用的是Cat对象
}
运行期判断
- 多态的理解:
1.静多态(静态绑定/编译时多态)
方法重载
2.动多态(动态绑定/运行期多态)
方法重写
动态绑定前提:
1.继承
2.方法重写
3.向上造型