(1) 可以使用父类中数据域的set方法为其设置初值;
(2) 使用super()调用父类的无参构造方法或者super(parameters)调用与参数匹配的父类的构造方法,且super()或者super(parameters)必须出现在子类构造方法第一行,这是显式调用父类构造方法的唯一方式。
public Circle(double radius,String color,boolean filled)
{
super(color,filled);
this.radius = radius;
}
(3) 如果子类的构造方法中无内容
public classname()
{
}
或者
public classname(parameters)
{
}
则相当于
public classname()
{
super();
}
或者
public classname(parameters)
{
super();
}
(4) 调用父类的方法
super.方法名(参数);
public void printCircle()
{
System.out.println("The circle is created " + super.getDateCreated() + " and the radius is " + radius);
}
(5) 覆盖方法
子类从父类中继承方法,如果需要修改父类中方法的实现,称为方法覆盖
public class Circle4 extends GeomerticObject1
{
public String toString()
{
return super.toString() + "\nradius is " + radius;
}
}
当且仅当方法是可访问的时候,才能被覆盖。因为私有方法在类本身以外是不能访问的,所以不能覆盖。
静态方法也能被继承,但是不能被覆盖。
(6) 对象类object和toString()方法
java中的每个类都源于java.lang.Object类,如果定义一个类时没有指定继承性,则这个类的父类就被默认为Object。
public class classname public class classname extends Object
{ 等价于 {
} }
(7) 对象转换
子类对象都可以转换成父类对象,因为子类对象的实例就是父类对象的实例
父类对象转换为子类对象时必须强制转换
Classname obj = (subclassname)o;
(8) instanceof 运算符 用于判断对象是否是某个类的实例
public static void xxx(Object object)
{
if(object instanceof XX1) //如果对象是XX1 的实例
{
}
else if (object instanceof XX2) //如果对象是XX2 的实例
{
}
}