源文件:Animal.java
public class Animal {
//定义一个double类型的属性
public double weight;
public void eat(){
System.out.println("动物在吃定西");
}
}
在定义该类的子类Dog。
源文件:Dog.java
public class Dog extends Animal{
//定义一个方法
public void say(){
System.out.println("狗叫:汪汪汪");
}
public static void main(String[] args) {
//创建Dog的对象
Dog d=new Dog();
//Dog对象本身没有weigth属性。
//因为父类有weigth属性,也可以访问Dog对象的属性。
d.weight=150;
//调用父类的eat方法
d.eat();
}
}
在main方法中,Dog类的对象访问了父类Animal的weigth属性,并调用了父类中的eat方法,这表明Dog对象也具有了weigth属性和eat方法,也就是继承。
在继承中,每个子类最多只有一个直接父类。因此下面代码将出现编译错误:
class 子类 extends 父类1,父类2,父类3{……}
注意,这里不是说java类只能又一个父类,而是说java类只能又一个直接父类。实际上,java类可以有无限多个间接父类。例如动物的父类是生物,狗的父类是动物。那么动物和生物可以说都是狗的父类,而狗的直接父类只有一个,那就是动物。