Java extends用法详解

概要:

理解继承是理解面向对象程序设计的关键。在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。在Java中不允许多继承。

(1)继承

class Animal{undefined

void eat(){undefined

System.out.println(“Animal eat”);

}

void sleep(){undefined

System.out.println(“Animal sleep”);

}

void breathe(){undefined

System.out.println(“Animal breathe”);

}

}

class Fish extends Animal{undefined

}

public class TestNew {undefined

public static void main(String[] args) {undefined

// TODO Auto-generated method stub

Animal an = new Animal();

Fish fn = new Fish();

an.breathe();

fn.breathe();

}

}

在eclipse执行得:

Animal breathe!

Animal breathe!

java文件中的每个类都会在文件夹bin下生成一个对应的.class文件。执行结果说明派生类继承了父类的所有方法。

(2)覆盖

class Animal{undefined

void eat(){undefined

System.out.println(“Animal eat”);

}

void sleep(){undefined

System.out.println(“Animal sleep”);

}

void breathe(){undefined

System.out.println(“Animal breathe”);

}

}

class Fish extends Animal{undefined

void breathe(){undefined

System.out.println(“Fish breathe”);

}

}

public class TestNew {undefined

public static void main(String[] args) {undefined

// TODO Auto-generated method stub

Animal an = new Animal();

Fish fn = new Fish();

an.breathe();

fn.breathe();

}

}

执行结果:

Animal breathe

Fish breathe

在子类中定义一个与父类同名,返回类型,参数类型均相同的一个方法,称为方法的覆盖。方法的覆盖发生在子类与父类之间。另外,可用super提供对父类的访问。