你的位置:首页 > Java教程

[Java教程]JAVA类与对象(七)


理解:继承可以理解为一个对象获取属性的过程。如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来。     在java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类。

关键字:extends和implements。

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

例:

// A.javapublic class A {  private int i;  protected int j;   public void func() {   }} // B.javapublic class B extends A {}

注意:上例说明B由A继承而来,B是A的子类。作为子类,B的实例拥有A所有的成员变量,但是对于private的成员B却没有访问权限,这保   证了A的封装性。

 

IS-A关系:一个对象是另一个对象的分类!我们通过使用instanceof 操作符,能够确定Mammal IS-A Animal。

class Animal{}class Dog extends Animal{}class Cat extends Animal{}class Pig extends Animal{}public class AnimalTest{  public static void main(String args[]){    Dog dog=new Dog();    Cat cat=new Cat();    Pig pig=new Pig();    System.out.println(dog instanceof Animal);    System.out.println(cat instanceof Animal);    System.out.println(pig instanceof Animal);  }}

 

我们再来看下implements关键字是怎样使用来表示IS-A关系。

Implements关键字使用在类继承接口的情况下, 这种情况不能使用关键字extends

interface Animal{}class Mammal implements Animal{}class Dog implements Animal{}public class AnimalTestTwo {  public static void main(String args[]){   Mammal m = new Mammal();   Dog d = new Dog();   System.out.println(m instanceof Animal);   System.out.println(d instanceof Animal);  }} 

 

 

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

public class Apple extends Fruit implements Fruit1, Fruit2{}
一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。