初学者学Java(七)

来源:互联网 发布:vmware桥接网络设置 编辑:程序博客网 时间:2024/05/01 06:37

                         详解继承

       继承是一种由已有的类创建新类的机制。利用将一群有共同属性和方法的类抽出相同点,放在同一个类中,这个类称作父类,也叫基类。然后在这个基础上添加各个类的特殊属性和方法,形成自己的类。这些类叫做子类这么做可以节省大量的代码量。Java中只允许每个子类有一个父类,Java中的继承使用extends关键字

1.使用方式:

我举个例子:

class A

{

}

class B extends A

{

}

这个程序中类B就是类A的子类,类A是类B的父类,B继承自A

2.运行方式

B b = new B()

在运行这条语句是Java虚拟机首先调用父类的无参构造方法,生成一个父类的对象,然后在调用子类的对象,生成一个子类的对象。【要想生成子类对象,首先生成父类的对象,没有父类就没有子类】。生成子类的同时生成的父类在内存空间上是连续的。

如果父类的构造函数不是无参的,而是有参数传递的,就需要使用super()函数,使用方法如下程序:

class C 

{

public C(int i)

{

i = 9;

}

}

class D extends C 

{

public D()

{

super(1);

}

}

如果子类使用super()显式的调用父类中的构造函数,系统就不会去调用父类的无参的构造函数,注意:super()必须放在子类构造函数的第一行。

3.继承的特性和注意事项

继承有三个特性:

1.父类有的方法和属性,子类也有。

2.父类没有的,子类可以添加。

3.父类有的,子类可以改变。

继承的注意事项:

1.构造方法不能被继承。

2.方法和属性可以被继承。

3.子类默认的调用父类的无参构造函数。

4.父类没有无参构造函数时需用Super()去显示调用父类的有参构造函数。

5.Super()必须在子类构造方法的第一行语句。

任何类都是Object类的直接子类或间接子类

4.方法的重写

讲到这里就不得不说一下方法重写这个概念了,方法重写虽然听上去和方法重载很像,但这两个是完全不同的概念。方法重写又叫覆写,是一种发生在子类方法哈父类方法之间的一种特征。特点是方法的名字相同,返回值相同,参数类型相同,此时就是方法的重写。方法的重写是发生在两个类之间,而方法的重载是发生在同一个类之中。当两个类中的方法发生重写是子类方法可以通过super()来调用父类的同名方法。

最后说一句,一定要深刻理解继承和封装,为理解多态打好基础。