Java语言进阶 互动版

###继承


继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。

继承中最常使用的两个关键字是extendsimplements

这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。

通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。

所有java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类。

继承两种方式:

<code>
extends方式
public class Animal(){}
public class Dog extends Animal(){}
通过使用关键字extends,子类可以继承父类的除private属性外所有的属性。

implements方式
public interface Animal(){}
public class Dog implements Animal(){}
Implements关键字使用在类继承接口的情况下, 这种情况不能使用关键字extends。
</code>

可以使用 instanceof 运算符来检验dog对象是否是Animal类的一个实例。

<code>
interface Animal{}
public class Dog extends Mammal{
   public static void main(String args[]){
      Dog d = new Dog();
      System.out.println(d instanceof Animal);//true
   }
}
</code>

Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现),脚本结构如:

<code>
public class Apple extends Fruit implements Fruit1, Fruit2{}
</code>

一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。

创建类Animal类,并且创建Mammal类继承Animal类,创建Dog类继承Mammal类,在Dog类创建main方法, 创建Animal实体对象a,创建Mammal实体对象m,创建Dog类实体对象d,使用instanceof检验m是否 IS-A Animal, d IS-A Mammal,d IS-A Animal