面向对象具有的三大特性:封装、继承和多态。
1.包
包的导入:如果要是用java中存在的包,可以在程序中使用impot语句导入包。
inport<包名>.<类名>
如果要导入一个包中的多个类,可以使用“*”表示包中所有的类。
import java util.*;//导入java。util包中的所有类
2.继承
继承是面向对象程序设计的一个重要特征,通过继承原有类派生出的子类进而构造出更为复杂的子类。通俗一点就是子类继承父类。语法如下:
[修饰符] class 子类名 extends 父类名{
//类定义部分
}
注:1.java中的继承为单继承,即一个子类只能有一个直接的父类。
2.super:子类调用父类的关键字
3.重载
指一个类中的多个方法可以具有相同的方法名,但这些方法的参数必须不同。功能相同,接收的参数不一样时使用重载。
注:同一个类中方法名相同,参数列表不同。
代码如下:
4.重写
子类扩展了父类,子类一个特殊的父类。子类以父类为基础,额外增加新的属性和方法。但子类需要重写父类的方法。
代码如下:
重载与重写区别
重载是在同一个类中相同的方法名,不同的参数;
重写是在子类与父类之间的相同的方法名和参数。
注意:子类的访问修饰符不能比父类高!
重写覆盖
如需要访问被子类覆盖的方法,可使用super关键字指明调用父类被覆盖的实例方法。
代码如下:
5.多态
指统一的声明的对象,作用于不同的实际对象,执行同一个操作,产生不同的结果。
代码如下:
instanceof运算符
instanceof运算符通常用于判断运算符前面的引用变量是否是运算符后面的类型或其子类型的实例。如果条件成立,则返回true,否则返回false。
引用变量的强制类型转换
在Java中 父类 对象名=new 子类(); 创建对象 对象名.方法名();调用方法时Java就编译器看的是父类中的方法,而运行时则会运行子类中的方法,所以我们需要使用到引用类型之间的转换,把父类的对象转换成子类的对象。
注意:基本类型之间的转换只能在数值之间进行,而引用类型之间的转换只能在具有继承关系的两个类型之间进行(如果是两个不具有继承关系的类型则会出现报错),可以将一个父类的转换成子类类型的,前提是此对象必须是子类实例。