1、
(1)类的成员的权限修饰符有public,protected,private或default,限定其他对象对该类对象成员的访问权限。
(2)class的权限修饰符只可以是public或default
public:类可以在任何地方被访问;
default:类只可以被同一个包内部的类访问。
2、继承
(1)Java中使用extends关键字实现继承;
(2)通过继承,子类自动拥有了基类所有成员(成员变量和方法,但构造方法不能被继承),将父类的private成员也继承下来,但是不能访问(有父类private成员的所有权,但没有使用权);
(3)Java只支持单继承,不允许多继承。
3、继承的例子
4、重写overwirte或override
(1)子类中可以根据需要对基类中继承来的方法进行重写;
(2)重写方法必须和被重写方法具有相同的方法名称、参数列表和返回类型;
(3)重写方法不能使用比基类中被重写方法更严格的访问权限。
(4)重写方法抛出的异常必须是基类中被重写方法抛出的异常或其子类。
(4)对于基类中private的方法不能被重写,子类中定义相同名称的方法时,是新方法,而非重写。
对比:重载overload:方法名相同,参数个数或参数类型不同才构成重载(编译器可以区分开),只有返回值类型不同不构成重载(编译器无法区分开)。
5、super关键字(面宝)
使用super来引用基类。
6、继承中的构造方法
(1)子类的构造过程中必须调用其基类的构造方法;
(2)子类可以在自己的构造方法中使用super(参数列表argument_list)调用基类的构造方法;
使用this(参数列表)调用本类中其他的构造方法。
super(参数列表),this(参数列表)都必须写在子类构造方法的第一行,显然二者不能同时被调用。
(3)如果子类的构造方法中没有显示调用基类构造方法,则系统默认调用基类无参构造方法;
(4)如果子类的构造方法中既没有显示调用基类构造方法,而基类中又没有无参构造方法,则编译出错。