`
topzhujia
  • 浏览: 56009 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Java的继承

    博客分类:
  • JAVA
阅读更多
<!--blog template-->
     
 

继承是一种由已有的类创建新类的机制。利用继承,可以先创建一个拥有共同属性的一般类,根据该一般类再创建具有特殊属性的新类。由继承而得到的类称为子类(Subclass),被继承的类被称为父类(Superclass)。

直接或间接被继承的类都是父类。子类继承父类的状态和行为,同时也可以修改父类的状态和行为,并添加新的状态和行为。Java中不支持多重继承。

建子类

java中通过在类的声明中加入extends子句来创建一个类的子类,其格式如下:

class Subclass extends Superclass{

}

如果默认extends子句,则该类为java.lang.Object的子类。子类可以继承父类中访问权限设定为publicprotectedfieldsmethods。但是不能继承访问权限为private的内容。还有一种default访问权限,在继承的过程中如果遇到default权限的fieldsmethod时需要分以下两种情况考虑:

•►子类和父类在同一包中,子类可以继承父类的default fields default methods

•►子类和父类不在同一包中,子类不能继承父类的default fields default methods

Fields的隐藏和Methods的重写

当子类中定义的fields和父类中的fields同名时,称子类的fields隐藏了父类的fields。当子类中定义了一个method,并且这个method的名字、返回类型、参数个数以及类型都和父类的某个方法完全相同时,父类的这个方法将被隐藏,这称作重写了父类的method

子类通过fields的隐藏和methods的重写可以把父类的状态和行为改变为自身的状态和行为。

super关键字

子类在隐藏了父类的fields或重写了父类的methods后,常常还要用到父类的fields或在重写的methods中使用父类被重写的methods以简化代码的编写,这时就要访问父类的fieldsmethodsJava中通过super来实现父类成员的访问。我们知道,this用来引用当前对象,与this相似,super用来引用当前对象的父类。

super的使用可以分为下面3种情况:

•►用来访问父类被隐藏的fields,如:super.variable

•►用来调用父类中被重写的methods,如:super.method([paralist])

•►用来调用父类的constructor,如:super([paralist])

对象的上转型对象

假设class Aclass B的父类,当用子类创建一个object,并把这个object的引用放到父类的对象中时,eg

A a;

A a = new B();

A a;

B b = new B();

a = b;

则称这个父类对象a是子类对象b的上转型对象。

对象的上转型对象的实体是由子类负责创建的,但上转型对象会失去原对象的一些属性和功能。上转型对象具有如下特点:

•►上转型对象不能操作子类新增fieldsmethods

•►上转型对象可以操作子类继承或重写的fieldsmethods

•►如果子类重写了父类的某个method后,当对象的上转型对象调用这个方法时一定是调用了这个重写的方法,因为程序在运行时知道,这个上转型对象的实体是子类创建的,只不过损失了一些功能而已。

Demo

public class Parent {

 public int i = 10;

}

 

public class Subclass1 extends Parent {

 public int i = 20;

}

 

public class Subclass2 extends Parent {

 public int i = 30;

}

 

public class Main {

 

 /**

* @param args

*/

 public static void main(String[] args) {

Parent p = new Parent();

Parent sub = new Subclass1();

Subclass2 sub2 = new Subclass2();

 

System.out.println(p.i + sub.i + sub2.i);

}

 

}

 



 
     
分享到:
评论

相关推荐

    java继承类实例

    在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...

    利用Java继承机制

    Java继承机制在图形类中的应用 Java继承机制是一种重要的面向对象编程技术,通过继承机制,可以实现代码的重用和简化程序设计。在本例中,我们将使用Java继承机制编写一个抽象的图形类Shape,并编写两个子类矩形类...

    java继承部分课件

    Java继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、...

    java继承作业.pdf

    Java继承作业.pdf 在本文中,我们将讨论Java继承的基本概念和实现方法,並以三个实例来演示继承的应用。 一、new A 和 A a=new A()的区别 在Java中,new关键字用于创建对象,而A a=new A()是将对象赋值给变量a。...

    JAVA继承的相关知识点

    下面我们将深入探讨JAVA继承的相关知识点。 1. **继承的概念**: - 继承体现了类之间的层次结构,子类继承父类,表示子类是父类的一个特例,具备父类的所有特性但可能有所扩展。 - Java中声明继承使用`extends`...

    java继承学习教案.pptx

    java继承学习教案.pptx

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

    Java继承和多态PPT教案学习 本PPT教案主要讲解了Java中的继承和多态机制,包括继承、里式代换原则、多态和动态绑定、方法重载、重载构造函数和方法覆盖等概念。 继承是面向对象编程的基本机制之一,允许一个类继承...

    java继承、多态的简单程序.zip

    这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承(Inheritance) 在Java中,继承允许一个类(子类)...

    Java 实现继承实例代码

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

    java继承和多态ppt

    java 继承和多态PPT教程

    经典java继承例子

    Java继承是面向对象编程的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的...

    java继承例题

    Java继承机制详解 Java继承是面向对象编程(OOP)的一种机制,允许一个类继承另一个类的成员变量和成员方法。通过继承,可以实现代码的重用和扩展。 在Java中,继承是通过使用关键字`extends`来实现的。例如,`...

    6.java继承的概念.zip

    6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip...

    7.java继承的语法.zip

    7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip...

    Java 继承和方法重写

    Java 继承是面向对象编程中的一个核心概念,它允许一个类(子类或派生类)从另一个类(父类或基类)继承特性,从而实现代码的复用和扩展。方法重写则是继承机制中一个关键的特性,允许子类对父类的方法进行定制化,...

    Java 继承 小程序

    在Java编程语言中,继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和行为。这个概念极大地提高了代码的重用性和模块化,使得我们可以构建复杂的类层次结构。在...

    java继承程序

    java 继承 程序 学习java 必须要学习的知识,搞懂了 你java就入门了

    java继承课件

    java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学

    Java继承实例源代码

    在这个"Java继承实例源代码"的压缩包中,包含的文件可能提供了关于Java继承和多态性的实际应用示例。 首先,我们来看“继承”这一概念。在Java中,通过使用关键字`extends`,一个类可以声明其为另一个类的子类。...

    java继承与多态教学及练习

    1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字

Global site tag (gtag.js) - Google Analytics