`
iRoger
  • 浏览: 29300 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA中的继承

    博客分类:
  • J2SE
阅读更多
[color=darkblue]二.继承
1. 什么是继承?子类对象的创建?
答:通过继承实现代码复用。Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类称 为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多重继 承,即一个类从多个超类派生的能力。
◇ 创建子类
  格式:
  
class SubClass extends SuperClass {
  …
  }
2. this和super的用法?
◇ super
  java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。Super 的使用有三种情况:
  1)访问父类被隐藏的成员变量,如:
    
super.variable; 
  2)调用父类中被重写的方法,如:
    
super.Method([paramlist]);
  3)调用父类的构造函数,如:
    
super([paramlist]);
例:
 
import java.io.*;
  class SuperClass{
    int x;
    SuperClass( ) {
     x=3;
     System.out.println("in SuperClass : x=" +x);
    }
     void doSomething( ) {
     System.out.println("in SuperClass.doSomething()");
    }
  }
  class SubClass extends SuperClass {
    int x;
    SubClass( ) {
     super( );    //调用父类的构造方法
     x=5;      //super( ) 要放在方法中的第一句
     System.out.println("in SubClass :x="+x);
    }
     void doSomething( ) {
     super.doSomething( ); //调用父类的方法
     System.out.println("in SubClass.doSomething()");
     System.out.println("super.x="+super.x+" sub.x="+x);
    }
  }
  public class Inheritance {
     public static void main(String args[]) {
     SubClass subC=new SubClass();
     subC.doSomething();
    }
  }
◇ this
this与this()用来引用对象自身的成员。
This 的使用有三种情况:
  1)访问自身对象被隐藏的成员变量,如:
    
this.variable; 

  2)调用自身对象中被重写的方法,如:
    
this.Method([paramlist]);
  3)调用自身的构造函数,如:
    
this ([paramlist]);
注意:在定义构造函数时,应将调用父类构造函数的代码super(…)置于最上部。因为必须首先初始化继承自父类的成员。
继承中的访问控制符?
3. 什么是覆盖?
答:我们把子类拥有与父类相同成员的情况称为覆盖(override)。
访问控制符要使用与父类相同或比父类权限更大的控制符。
覆盖父类成员的目的在于通过在子类中重新定义扩展父类功能。
4. 什么是多态?
在java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。
  1) 编译时多态
  在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。
  2) 运行时多态
  由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。
◇ 重写方法的调用原则:java运行时系统根据调用该方法的实例,来决定调用哪个方法。对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。
5. 什么是实例成员,什么是类成员?
答:实例成员和类成员
  用static 关键字可以声明类变量和类方法,其格式如下:
  
static type classVar;
  static returnType classMethod({paramlist}) {
  …
  }
 
  如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。
  1) 实例变量和类变量
  每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。
  类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。

  2) 实例方法和类方法
  实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。
  但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。

6. 引用的范围?
7. 引用变量的类型转换?
8. 什么是Object类?Object型引用变量?
答:类java.lang.Object处于java开发环境的类层次的根部,其它所有的类都是直接或间接地继承了此类。该类定义了一些最基本的状态和行为。下面,我们介绍一些常用的方法。

  equals() :比较两个对象(引用)是否相同。
  getClass():返回对象运行时所对应的类的表示,从而可得到相应的信息。
  toString():用来返回对象的字符串表示。
  finalize():用于在垃圾收集前清除对象。[/color]
分享到:
评论

相关推荐

    java中继承与多态的题目

    Java 中继承与多态的题目 本资源摘要信息是关于 Java 中继承和多态的题目,涵盖了面向对象编程的基本概念和继承机制的应用。 继承的概念 继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)...

    java中继承的使用案例

    (2)学生类Student继承Person,增加了学号信息,有两个构造方法Student()和Student(姓名,性别,年龄,学号),调用父类Person的构造方法对父类部分进行构造,在Student()中,默认学号为空字符串,在Student...

    Java中继承的特点、好处

    Java中继承的特点、好处

    java中继承测试代码分析

    Java 中继承测试代码分析 Java 中继承测试代码分析是 Java 编程语言中的一种重要概念。继承是基于已经存在的类构造一个新类,可以复用这些类的方法和域。在 Java 中,继承关系的指定是通过关键字 "extends" 实现的...

    Java中的继承脑图笔记(xmind)

    使用xmind整理的Java中继承中的脑图笔记(没有最好,只有更好)。包括的继承的概念、语法、注意事项等。。。有需要的童鞋可免费下载。。。

    java中继承课件

    上课老师讲得太快 没听懂 可以看看这个 讲的很详细

    Java中继承.pdf

    2. Java继承的分类 Java支持两种类型的继承: - 单继承:一个子类只能有一个直接父类。这是Java的默认模式,也是为了避免多继承带来的二义性问题。 - 多继承:一个子类可以从多个父类继承。然而,Java不直接支持多...

    为什么说Java中继承是有害的

    大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interfaces写,而...“JAVA设计模式”一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。

    经典java继承例子

    在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的主要目的是减少代码冗余,提高代码的可维护性和可扩展性。在Java中,我们使用`extends`关键字来表示一个类继承自另一个类。...

    java中慎用继承 以及java中的stack的败笔

    本文将深入讨论Java中继承的优缺点,以及在特定情况下如何避免使用继承,同时探讨`java.util.Stack`类的设计问题。 继承是面向对象编程中的一个核心概念,主要目的有三个:代码重用、规范制定和实现多态。通过继承...

    java中的继承(子类调用父类构造方法还不懂).doc

    Java 中的继承(子类调用父类构造方法还不懂) Java 中的继承是指一个类可以继承另一个类的属性和方法,这样可以实现代码的复用和提高开发效率。在 Java 中,继承使用关键字 `extends` 来实现。 Java 中继承的注意...

    java基础学习(继承与接口的区别及产生原因)

    在深入探讨Java中继承与接口的区别以及其产生原因之前,我们先明确两个概念的基本定义。在面向对象编程中,继承是一种使一个类继承另一个类的属性和方法的机制,允许子类扩展或重写父类的行为。接口则是一种定义行为...

    Java 实现继承实例代码

    这个例子展示了Java继承的核心概念,包括: 1. 使用`extends`关键字创建子类。 2. 访问和覆盖父类的方法。 3. 添加子类特有的方法。 4. 多态性的应用。 通过学习这个实例,开发者能够更好地理解和运用Java的继承...

    Java类继承初始化顺序

    在Java编程语言中,类继承是面向对象设计的一个核心特性,它允许我们创建一个新类(子类)作为现有类(父类)的扩展。当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、...

    JAVA中什么是继承.docx

    Java 中的继承 Java 中的继承是一个对象获取父对象的所有属性和行为的机制。它是 Java 面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承的概念是指子类继承父类的特征和行为,使得子类对象(实例)...

    java继承和多态PPT教案学习.pptx

    Java继承和多态机制是面向对象编程中的核心特性。继承让我们可以构建一个层次化的类结构,通过子类复用和扩展父类的功能,而多态和动态绑定则让我们的程序更加灵活,能够适应不断变化的需求。正确理解和运用这些概念...

    Java中继承thread类与实现Runnable接口的比较

    Java 中继承 Thread 类与实现 Runnable 接口的比较 在 Java 中,创建线程有两种方式:继承 Thread 类和实现 Runnable 接口。这些方式都可以用来创建线程,但它们之间有着一些关键的区别。 继承 Thread 类 继承 ...

    java继承类文档

    该文件用于java基础知识学习,主要是介绍Java中继承类的知识点

    面向对象抽象思维与java继承机制

    面向对象抽象和Java继承机制是现代软件开发中不可或缺的部分。通过抽象,我们可以将复杂的问题分解为更小、更易于管理的部分;而通过继承,我们可以复用现有的代码,并且更容易地扩展和维护我们的程序。理解和熟练...

    java三大特性之继承

    java中支持多层继承(儿子-爹-爷爷。。。) 所有的类都直接或间接继承继承自Object 如果父类装起来,子类无法直接访问,但是子类确实有继承下来, 可以通过父类提供公共方式进行访问 如果...

Global site tag (gtag.js) - Google Analytics