Java培训SE基础之继承

  1. 继承的概念

一个类从另外一个类继承所有成员, 包括属性和方法, 但是不包括构造器和语句块

从现有类创建子类, 现有类就称为父类, 基类, 超类.

   为描述和处理个人信息,定义类Person:

 

Person

+name : String

+age : int

+birthDate : Date

+getInfo() : String

 

public class Person {

      public String name;

      public int age;

      public Date birthDate;

      public String getInfo()  

     {…}

}

 

 

   为描述和处理学生信息,定义类Student:

 

 

Student

+name : String

+age : int

+birthDate : Date

+school : String

+getInfo() : String

 

public class Student {

      public String name;

      public int age;

      public Date birthDate;

      public String school;

      public String getInfo() 

     {…}

}

 

java培训

java培训技术
2. 为什么要继承

  • 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
  • 此处的多个类称为子类,单独的这个类称为父类(基类或超类)。可以理解为:“子类 is a 父类”

当一个类和另外一个类的属性和方法完全相同, 并且同时又比另一个类多一些特有的属性和方法时, 前者就可以作成后者的子类, 子类继承父类的所有成员, 这样, 在子类中就可以省略从父类继承的成员, 便于代码的复用, 以及更统一的类型管理.

3. 继承语法

class 子类 extends 父类 {}

从语法意思来看, 子类是扩展自父类, 也可以理解为子类是在以父类为基础的前提下, 进一步扩展一些属性和方法, 所以子类大于父类, 或者也可以说, 子类包含父类.

  • 通过继承,简化Student类的定义:

Java培训

public class Person {

      public String name;

      public int age;

      public Date birthDate;

      public String getInfo() {…}

}

public class Student extends Person{

      public String school;

}

//Student类继承了父类Person的所有属性和方法,并增加了一个属性school。

//Person中的属性和方法,Student都可以使用。

 

Java培训

l 作用:

Ø  继承的出现提高了代码的复用性。

Ø  继承的出现让类与类之间产生了关系,提供了多态的前提。

Ø  不要仅为了获取其他类中某个功能而去继承

 

4. 继承的特点

 Java培训

①子类继承父类的所有成员(构造器除外), 就意味着父类的私有成员也会被子类继承, 但是因为私有成员只能被本类访问, 所以即使是在子类中也不能直接访问从父类继承的私有成员, 可以通过从父类继承的公共的get/set方法间接访问.

 

public class Person {

      private String name;

      private int age;

      private Date birthDate;

 

      public void setName(String name) {

          this.name = name;

}

 

      public String getInfo() {…}

}

public class Student extends Person{

      public String school;

      public void test() {

          //name = “小明”; // 不可以, 因为是私有的

          setName(“小明”);// 可以, 通过公共方法间接访问

}

}

②单继承

Java只支持单继承,不允许多重继承

一个子类只能有一个直接父类

一个父类可以派生出多个子类

class SubDemo extends Demo{ }   //ok

class SubDemo extends Demo1,Demo2…//error

 

   在继承关系中, 一个类Person可以被另外的类Soldier和Student和Officer继承, 然后Student又被Graduate类继承, 这是允许的, 在这样的体系中, Graduate类也称为Person类的子类, Person类也称为Graduate类的父类, 这样的继承我们称之为多层继承. 在这样的体系中, Student类称为Graduate类的直接父类, 显然地, Person类称为Graduate类的间接父类, 在java中, 多层继承是被允许的.

Java中不允许的多继承是指多重继承, 也就是说一个类不允许有多个直接父类, 间接父类并没有个数限制. 称之为单继承.

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)