Java学习之三
第十章:接口、继承与多态
(一)类的继承
继承思想:
类的继承是基于父类的扩展,指定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增加的原来父类所不具备的属性和方法,或者直接重写父类中的某些放法
例子:
分析:
1)在子类中可以连同初始化父类构造方法来完成子类初始化操作,既可以在子类的构造方法中使用super()语句调用父类的构造方法,也可以在子类中使用super关键字调用父类的成员方法等。
2)子类没有权限调用父类中被修饰为private的方法,只可以调用父类中修饰为public或protected的成员方法。
3)继承还可以重写父类的成员方法,就是在子类中将父类的成员方法的名称保留,重写成员方法的实现内容,更改成员方法的储存权限,或是修改成员方法的返回值类型。
注意: 当重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变
在实例化子类对象时,Java编译器会在子类的构造方法中自动调用父类的无参构造方法,例如:
运行结果:
说明:在实例化子类对象时,父类无参构造方法将被自动调用,但有参构造方法并不能被自动调用,只能依赖于super关键字显式地调用父类的构造方法
(二)Object类
public class ObjectInstance{
public String toString(){ //重写toString()方法
return "在"+getClass().getName()+"类中重写toString()方法";
}
public static void main(String[] args){
System.out.println(new ObjectInstance()); //打印本类对象
}
}
运算结果:
在ObjectInstance类中重写toString()方法
(三)对象类型的转换
1.向上转型:把子类对象赋值给父类类型的变量
运算结果:
分析:如果在四边形类的draw()方法中根据不同的图形对象设置不同的处理,就可以做到在父类中定义一个方法完成各个子类的功能
2.向下转型:将父类对象赋予子类对象,并强制转换为子类型
class Quadrangle{
public static void draw( Quadrangle q){
//SomeSentence
}
}
public class Parallelogram extends Quadrangle{
public static void main(String[] args){
draw(new Parallelogram());
Quadrangle q=new Parallelogram(); //向上转型
Parallelogram p=(Parallelogram) q; //向下转型
}
}
(四)使用instanceof操作符判断对象类型