在实践中学Java(中)面向对象
Java面向对象
Java继承
继承:子类继承父类的特征/实例域和行为/方法。
class 父类 {}
class 子类 extends 父类 {}
Java支持多重继承(C继承B,B继承A);不支持多继承
extends
只能继承一个类
implements
可以继承多个接口,用","隔开
super
实现对父类成员的访问
this
指向自己的引用
finel
终态,类不能被继承,方法不能被改写
重写Override与重载Overload
-
重写:子类对父类允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变
编译时检查参数的引用类型,父类中需有对应的方法,运行时运行实例对象的方法。
通过super调用父类被重写之前的方法。
标记@Override可以避免一些基本的错误。 -
重载:在一个类中,方法名相同,参数不同,返回类型可同可不同。最常用的地方是构造器的重载。
多态
- 什么是多态?同一个接口,使用不同的实例可执行不同的操作
- 多态存在的三个必要条件:继承;重写;通过父类引用指向子类对象
Parent p = new Child();
实现动态绑定,在程序运行时(而不是编译时)根据对象的实际类型来确定调用哪个方法的的过程。
class Shape {void draw() {}
}class Circle extends Shape {void draw() {System.out.println("Circle.draw()");}
}class Square extends Shape {void draw() {System.out.println("Square.draw()");}
}class Triangle extends Shape {void draw() {System.out.println("Triangle.draw()");}
}