1.包
2.继承
3.重载
4.重写
5.多态
1.包
包是类的逻辑组织形式,在程序中可以声明类所在的包,同一个包中的类名不可以重复。通过包可以对类的访问权限进行控制。
包的语法如下:
package<包名>
如果要使用Java中存在的包,可以在程序中使用import语句导入包,格式如下:
import<包名>.<类名>
2.继承
继承是面向对象程序设计的一个重要特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
继承避免了对一般类和特殊类之间共同特征进行的重复描述。同时,通过继承可以清晰地表达每一项共同特征所适应的概念范围。
继承的语法如下:
[修饰符] class 子类名 [extends 父类名]{
//类定义部分
}
注意!子类无法继承父类私有成员,而且在实际的开发过程中,不建议让子类继承父类的属性,因为子类继承父类的属性会打破父类的封装性。
3.重载
如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载
方法重载的要求是“两同一不同”规则:同一个类中方法名相同,参数列表不同。至于方法的其他部分,例如方法返回值类型、修饰符等,
与方法重载没有任何关系。
注意!构造方法也可以实现方法的重载
4.重写
子类扩展了父类,子类是一个特殊的父类。子类以父类为基础,额外增加新的属性和方法。但有一种情况除外:子类需要重写父类的方法。
方法的重写要遵循“两同两小一大”规则:“两同”方法名相同,形参列表相同;“两小”子类方法返回值类型比父类方法返回值
类型范围更小或相等,子类方法抛出的异常类型应比父类抛出的更小或相等;“一大”子类方法的返回值权限应比父类方法的返回值权限更大或相等。
5.多态
父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及
其各个子类中具有不同的含义。
instanceof运算符:前一个操作数通常是一个引用类型的变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的
类型或其子类型的实例。如果条件成立,则返回true,否则返回false