Java实用教程
第4章面向对象基础(下)
第4章面向对象程序设计(下)
:
在面向对象编程里,可以根据已定义的类定义一个新类,从而实现代码的复用。
其中,被继承的类称父类,由继承而得到的类称子类。子类具有父类的成员(属性和方法),同时也可以修改父类的属性或重写父类的方法,并增加新的属性和方法。
class Manager extends Employee
{
public void manage()
{
("managing");
}
public static void main(String[] args)
{
Employee p=new Employee();
="Employee"; =30;
();
Manager m=new Manager();
="Manager";(); ();
}
}
要在以前的类的基础上构造新类,必须在新类的声明中扩展以前的类,通过扩展一个超类,可以得到这个类的一个备份,并在这个基础上,添加新的属性和方法。如果对新类不作任何添加工作,那它的工作情况会与超类完全相同。新类中会含有超类所声明或继承的所有属性和方法。在类的继承中会有以下一些细节问题应注意:
(1) 通过类的继承可以简化类的定义。
(2) java只支持单继承,不允许多重继承。在 java 中,一个子类只能由一个父类,但一个类可以被多个类继承。
(3) 可以有多层继承,即一个类可以继承某一个类的子类,即间接继承。如:
class A
{ }
Class B extends A
{ }
Class C extends B
{ }
(4) 子类继承父类的所有成员变量和成员方法,但不继承父类的构造方法,在子类的构造方法中,可以使用语句super(参数列表)调用父类的构造方法。如:我们为Manager类增加一个构造方法,在这个构造方法中用super明确指定调用父类的某个构造方法。
class Manager extends Employee
{
public Manager(String name,int age,pany)
{
this(name,age);
pany;
}
}
(5) 如果子类构造方法中没有显式调用父类的构造方法,也没有使用this关键字调用重载的本类的其它构造方法,则在产生子类的实例对象时,系统默认调用父类无参的构造方法。在下面的类B中,定义的构造方法中,写不写super()语句的效果是一样的。
class B extends A
{
public B( )
{ super( ); }
}
面向对象基础(下)教材教学稿件 来自淘豆网www.taodocs.com转载请标明出处.