疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java类的继承-继承的定义


 

   

  继承(inheritance)是面向对象编程的核心机制之一,没有使用继承的程序设计,就不能成为面向对象的程序设计。

  1.继承的定义

  特殊类的对象拥有一般类的全部属性与行为,称为特殊类对一般类的继承。一个类可以是多个一般类的特殊类,也可以从多个一般类中继承属性与行为,但在java语言中,不允许一个类从多个一般类中继承属性与行为,即在java语言中,只支持单继承。

  在软件开发中,通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。因此,类的继承性使所建立的软件具有开放性开放性、可扩充性,这是信息组织与分类的行之有效的方法,通过类的继承关系,使公共的特性能够共享,简化了对象、类的创建工作量,增加了代码的可重用性。

  java 中继承使用关键字extends ,语法如下:

  [类修饰符] class 子类名 extends 父类名{

  语句;

  }

  在java中,java.lang.Object 类是所有java类的最高层父类,是唯一一个没有父类的类。如果在类的声明中未使用extends 关键字指明其父类,则默认父类为Object 类。java中的类的继承关系形成了以Object 类为树根的树状层次结构。例:

  public class text{

  ......;

  }

  等价于

  public class text extends Object{

  ......;

  }

  示例:

  //Person

  public class Person{

  String name;

  int age;

  void eat(String s){

  System.out.println(s);

  }

  void sleep(String s){

  System.out.println(s);

  }

  }

  //Teacher

  public class Teacher extends Person{

  int salary;

  String school;

  void teach(String s){

  System.out.println(s);

  }

  public static void main(String[] args){

  Teacher t = new Teacher();

  t.name = "张三"; //实例化Teacher 类对象t

  System.out.println("教师"+t.name);

  t.eat("吃"); //使用从父类继承来的成员方法eat()

  t.sleep("睡"); //使用从父类继承来的成员方法sleep()

  t.teach("上课"); //使用在Teacher类中定义的teach()方法

  }

  }

  注:成员变量和成员方法可以被继承,但是构造方法不能被继承。