Java中使用extends关键字实现类的继承机制
通过继承,子类自动拥有了基类(superclass)的所以成员(成员变量和方法)
Java只支持单继承,不允许多继承:
一个子类只能有一个基类
一个基类可以派生出来多个子类
Java权限修饰符public protected private置于累的成员定义前,用来限制其他对象对该对象成员的访问权限。
修饰符 |
类内部 |
同一个包 |
子类 |
任何地方 |
private |
Yes |
|
|
|
default |
Yes |
Yes |
|
|
protected |
Yes |
Yes |
Yes |
|
public |
Yes |
Yes |
Yes |
Yes |
对于class的权限修饰只可以用public 和default
public类可以在任何地方被访问
default类只可以被同一个包内部的类访问
1. 在子类中可以根据需要对基类中继承来的方法进行重写。
2. 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
3. 重写方法不能使用比被重写方法更严格的访问权限。
在Java类中使用super来引用基类的成分;
Super指向当前类的父类对象
1. 子类的构造的过程中必须调用其基类的构造方法
2. 子类可以在自己的构造方法中
a) 使用super(argument_list)调用基类的构造方法。
b) 使用this(argument_list)调用本类的另外的构造方法
c) 如果调用super,必须写入子类构造方法的第一行
3. 如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法
4. 如果子类构造方法中即没有显示调用基类构造方法,而基类中没有无参的构造方法,则编译出错。
Object类是所有Java类的根基类
如果在类的声明中未使用extends关键字指明其基类,则默认基类为object类
public class Person{
…
}
等价于
public class Person extends Object{
…
}
|
|
protected Object |
clone() |
boolean |
|
protected void |
finalize() |
Class<?> |
getClass() |
int |
hashCode() |
void |
notify() |
void |
notifyAll() |
toString() |
|
void |
wait() |
void |
wait(long timeout) |
void |
wait(long timeout, int nanos) |
Object类中定义了public String toString() 方法,其返回值是String类型,描述当前对象的有关信息
在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+Person)),将自动调用该对象类的toString()方法
可以根据需要在用户自定义类型中重写toString()方法。