修饰符
default (默认): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
继承
继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
通过继承子类可以继承父类中的公共或权限足够的属性和方法,子类也可以在自身中定义自己的其他属性和方法或重写父类中的方法;
java中的继承是单继承,每个子类只能继承一个父类,一个父类可以由多个子类继承;
java中继承的关键字: extends
子类写法 : 修饰符 class 类名 extends 父类名{ }
Vehicles为父类 Car为子类 父类中的成员变量brand和color为私有属性,子类不可直接调用 但可以通过getBrand()、setBrand()、getColor()及setColor()完成对brand属性及color属性的赋值;
若不需要修改的从父类中的公共或权限足够的方法则不需要书写,可直接使用,Car中对父类中的showInfo方法进行了重写
子类继承父类后在构造方法时可通过super()对继承的属性进行赋值;
此为对子类Car的调用,发现成功继承父类中的方法
此为Hero继承父类ForPVP后通过get set方法修改life等属性
抽象
当一个方法使用abstract关键字修饰,并且没有方法体的方法,方法就是一个抽象方法
被abstract修饰的类,就是抽象类。
被abstract修饰的方法,叫做抽象方法。
若一个类中包含抽象方法则此类必须定义为抽象类
抽象方法写法: 修饰符 abstract 返回值/void 方法名();
子类在继承抽象类时需要重写被继承抽象类中的抽象方法,若子类没有重写实现其抽象方法则子类必须定义为抽象类,可继续由子类完成抽象类的重写实现
以上代码中父类Role为抽象类,其中play方法为抽象方法,需要有继承他的子类重写实现,Employee方法在继承Role类时重写实现了抽象方法play;
接口
接口在java是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口内部属性和方法默认都是使用public修饰的,也就是即便不写public,也是public
接口内部的方法都是没有实现,都在等待子类实现
以上代码中父类Door中接口ZhongL中包括三个已定义无返回值的类(默认为权限public类型)需要子类实现,子类在继承中可实现接口中的方法,如子类之一ThefProof继承父类Door实现了接口中的theftproof方法
以上代码子类PWater1继承父类Water并选择接口GuoL和HuanC并实现其中的方法GL及HC