java第八章(1)继承

8.1类的继承

被集成的类成为父类或者超类(superclass),由集成而得到的类称为子类(subclass).一个父类可以拥有多个子类,但由于java中不支持多重继承,所以一个类只能有一个直接的父类.

父类实际上是所有子类的公共成员的集合,而每一个子类则是父类的特殊化,是对公共成员变量和方法在 功能,内涵方面的扩张和延伸.

java语言中有一个成为java.lang.Object的特殊类,所有的类都是直接或间接地继承该类而得到的.

1).子类的创建

Java中类的继承是通过extends关键字来实现的.子类可以继承所有非private的成员作为自己的成员.

格式如下:

class SubClass extends SuperClass

{  ......  }

eg:

class Person

{

  private String name;    //构造方法  与 类的成员

  private int age;

  public Person()

  {

    System.out.println( "调用了个人构造方法 Person( )" );

  }

  public void SetNameAge( String name, int age )

  {

    this.name = name;

    this.age = age;

  }

  public void show( )

  {

    System.out.println("name:" + name + " age:" + age );

  }

}

class Students extends Person

{

  private String department;

  public Student( )

  {

    System.out.println( " 调用了学生的构造方法 Student( )" );

  }

  public void SetDepartment( String dep )

  {

    department = dep;

    System.out.println("我是" + department + "的学生" );

  }

}

public class app8_1

{

  public static void main( String[] args )

  { 

    Student stu = new Student( );    //创建Student对象

    stu.SetNameAge( "zhangsan", 21 );    //调用父类的 SetNameAge( ) 方法

    stu.show( );  //调用父类的 show( ) 方法

    stu.SetDepartment( "计算机系" );    //调用子类的SetDepartment( )方法

  }

}

程序执行的结果为:

调用了个人构造方法 Person( ) 

调用了学生的构造方法 Student( )

name: zhangsan age: 21

我是计算机系的学生

2).调用父类中特定的构造方法

eg:

class Student extends Person

{

  private String department;

  public Student( )

  {

    System.out.println("调用了学生的无参构造方法 Student( )" );

  }

  public Student( String name, int age, String dep )

  {

    super( name, age );    //调用父类的有参构造方法

    department = dep;

    System.out.println("我是"+department + "的学生" );

  }

}

3).在子类中访问父类的成员

使用super不但可以访问父类的构造方法,还可以访问父类的成员变量和成员方法,但super不能访问在子类中添加的成员.

访问父类成员的格式如下:

    super.<变量名>

    super.<方法名>

若父类中非private成员,则protected成员不仅可以在父类中直接访问,同时也可以在子类中访问.

4).覆盖(Overriding)

覆盖的概念与方法的重载相似,他们均是Java语言"多态"(Polymorphism)的技巧之一.

覆盖是指在子类中,定义名称,参数个数与类型均与父类相同的方法,用以重写父类里同名方法的功能.

注意:子类中不能覆盖父类中声明为 final或 static 的方法.

方法一旦被覆盖,那么父类调用该方法也会是调用子类中的方法.但父类不能调用子类中的方法.

覆盖:与父类的方法名称,参数个数与类型必须完全相同.

5).不可被继承的成员与最终类

在默认情况下所有的成员变量都可以被覆盖,如果父类的成语不希望被子类的成员所覆盖可以将它们声明为final.即最终变量,常量.可以访问,但不能修改.可以增加代码的安全性.

若成员变量被声明为final,那么也不能继承该变量.

若一个类被final修饰符修饰,则说明这个类是最终类,该类不可以有子类,这种类被称为最终类.

6).Object类

如果某个类没用使用关键字extends,则该类默认为 java.lang.Object 类的子类.

Object 类常用方法:

public Boolean equals( Object obj )  //判断两个对象变量所指向的是否为同一个对象

public String toString( )  //将调用toString( ) 方法的对性爱那个转换成字符串

public final Class getClass( )  //返回调用getClass( ) 方法的对象所属的类

protected Object clone( )  //返回调用该方法的对象的一个副本

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 第1章《认识java语言》是介绍Java语言的起源、发展以及特点等基本知识。Java是一种跨平台的高级编程语言,被广泛应用于开发Web和移动应用程序等领域。它具有面向对象、可移植、健壮性好等特点。 第2章《Java语言基础》是介绍Java语言的基本语法、数据类型、运算符、控制流程等内容。学习这些基础知识对于理解和编写Java程序至关重要。 第3章《面向对象程序设计之一》是介绍面向对象编程的原理和基本概念。学习面向对象的思想和方法可以提高程序的可扩展性和重用性。本章内容包括类与对象、封装、继承、多态等知识点。 第4章《面向对象程序设计之二》是进一步探讨面向对象编程的高级特性。学习抽象类、接口、内部类等内容可以让我们写出更加灵活和健壮的Java程序。 第5章《Java基础类库》是介绍Java标准库中的常用类和接口。掌握这些类的使用方法可以大大简化程序开发,如字符串处理、集合框架、IO操作等。 第6章《图形用户界面程序》是介绍使用Java编写图形用户界面(GUI)程序的方法。学习Swing和JavaFX等技术可以实现丰富、直观的用户界面。 第7章《输入输出流》是介绍Java中的输入输出操作。学习文件读写、网络通信等知识可以实现数据的持久化和交互。 第8章《多线程并发编程》是介绍Java多线程编程的原理和方法。学习多线程操作可以充分利用多核处理器的优势,提高程序的并发性和响应性。 第9章《网络编程》是介绍使用Java进行网络通信的方法。学习Socket编程、HTTP协议等内容可以开发出基于网络的应用程序。 第10章《数据库编程》是介绍使用Java连接和操作数据库的方法。学习JDBC等技术可以实现与数据库的交互,进行数据持久化和查询。 通过学习这些章节的内容,可以全面掌握Java语言的基础知识和常用技术,为进一步深入学习和应用Java打下良好的基础。 ### 回答2: 第1章:认识Java语言 第1章介绍了Java语言的基本概念和特点。Java是一种跨平台的编程语言,被广泛应用于Web开发、移动应用开发等领域。Java具有简单易学的特点,使用了面向对象的编程思想,具有良好的可扩展性和可维护性。 第2章:Java语言基础 第2章主要介绍了Java语言的基本语法和常用的数据类型。包括变量、常量、运算符、流程控制语句等。同时还介绍了Java中的数组、字符串和输入输出等相关知识。 第3章:面向对象程序设计之一 第3章介绍了面向对象程序设计的基本概念和常用的面向对象的特性。包括类、对象、继承、封装和多态等。同时还介绍了如何定义和使用类,以及如何实现各种面向对象的特性。 第4章:面向对象程序设计之二 第4章进一步深入介绍了面向对象程序设计的相关知识。包括接口、抽象类、继承和多态的高级应用,以及异常处理和内部类等。这些知识对于构建复杂的面向对象程序非常重要。 第5章:Java基础类库 第5章介绍了Java基础类库中常用的类和方法。包括字符串、日期、时间、集合、文件和输入输出等类库的使用。这些类库为我们提供了丰富的功能,在Java编程中非常实用。 第6章:图形用户界面程序 第6章介绍了Java图形用户界面编程的相关知识。包括Swing和AWT等GUI库的使用,以及事件处理和布局管理器等。通过学习这些知识,我们可以编写出漂亮、交互性强的图形界面程序。 第7章:输入输出流 第7章介绍了Java中输入输出流的使用。包括字节流和字符流的概念、File类的使用以及文件读写和网络通信等。这些知识对于实现数据的读写和传输非常重要。 第8章:多线程并发编程 第8章介绍了Java多线程并发编程的相关知识。包括线程、线程同步和线程通信的概念,以及锁和条件的使用。同时还介绍了线程池的概念和使用,以及如何处理并发编程中的常见问题。 第9章:网络编程 第9章介绍了Java网络编程的基本知识。包括Socket编程、TCP和UDP协议,以及HTTP协议的使用。通过学习这些知识,我们可以编写出具有网络功能的Java应用程序。 第10章:数据库编程 第10章介绍了Java数据库编程的相关知识。包括连接数据库、执行SQL语句、事务处理和数据查询等。通过学习这些知识,我们可以使用Java操作各种类型的数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值