1、关键字super有两个用途:一是调用超类的方法,而是调用超类的构造器。
super不是对一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特有关键字。super在构造器中的作用:
<!---->
public
Manager(String n,
double
s,
int
year,
int
month,
int
day)
{
super
(n, s, year, month, day);
bonus
=
0
;
}
由于构造器不能范围Employee类的私有域(具体例子见本文最后面PersonTest.java),所以必须利用Employee类的构造器对这部分私有域进行初始化子
,我们可以通过super实现对超类构造器的调用。使用super调用构造器的语句必须是
类构造器的第一条语句。如果之类的构造器没有显示的调用超类的构造器,这将自动调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,并且在子类的构造器中没有显示地调用超类的其它构造器,则Java编译器将报告错误,这个规则对与abstract base class 也是成立的。
2、关键字this有两个用途:一是引用隐式参数,二是调用该类的其它的构造器。在调用构造器时和super很相似,都只能作为另一个构造器的第一条语句出现。
3、多态。先看例子:
<!---->
Manager boss = new Manager();
Employee [] staff = new Employee[3];
staff[0] = boss;在这个例子中,变量staff[0]和boss引用同一个对象.但编译器将staff[0]看待成Employee对象.这意味着可以这样调用:
boss.setBonus(5000);
但不能这样调用
staff[0].setBonus(5000);//error,这样会引起一个编译错误
这是因为staff[0]声明的类型是Employee,而setBonus不是Empoyee类的方法。
4、动态绑定:
-
方法的名字和参数列表被称为方法的签名(signature).如果在子类中定义了一个与超类签名相同的方法,那么子类中的这个方法就覆盖了超类中的这个同签名的方法。但是,返回类型不是签名的一部分,因此在覆盖方法的时候,一定要保证返回类型的兼容性。在JDK 5.0以前的版本中,要求返回类型必须是一样的。而现在允许子类将覆盖方法返回类型定义为原返回类型的子类型。例如,假设Employee类有:
<!---->
public Employee getBuddy(){} 在后面的子类Manager中,可以按照如下所示的方法覆盖这个方法:<!---->
public Manager getBuddy(){} //OK in JDK 5.0
-
如果方法是private, static, final或者是构造器,那么编译器将可以准确地知道应该调用那个方法。我们将这种调用方式称为静态绑定。但是,子类不能继承父类private (方法,更谈不上覆盖)不能覆盖final修饰的方法,但可一覆盖static方法
-
覆盖一个方法的时候,子类方法不能低于超类方法的可见性。特别是如果超类得方法是public,那么子类方法一定要声明为public。
分享到:
相关推荐
在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...
Java继承机制在图形类中的应用 Java继承机制是一种重要的面向对象编程技术,通过继承机制,可以实现代码的重用和简化程序设计。在本例中,我们将使用Java继承机制编写一个抽象的图形类Shape,并编写两个子类矩形类...
Java继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、...
Java继承作业.pdf 在本文中,我们将讨论Java继承的基本概念和实现方法,並以三个实例来演示继承的应用。 一、new A 和 A a=new A()的区别 在Java中,new关键字用于创建对象,而A a=new A()是将对象赋值给变量a。...
下面我们将深入探讨JAVA继承的相关知识点。 1. **继承的概念**: - 继承体现了类之间的层次结构,子类继承父类,表示子类是父类的一个特例,具备父类的所有特性但可能有所扩展。 - Java中声明继承使用`extends`...
java继承学习教案.pptx
Java继承和多态PPT教案学习 本PPT教案主要讲解了Java中的继承和多态机制,包括继承、里式代换原则、多态和动态绑定、方法重载、重载构造函数和方法覆盖等概念。 继承是面向对象编程的基本机制之一,允许一个类继承...
这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承(Inheritance) 在Java中,继承允许一个类(子类)...
这个例子展示了Java继承的核心概念,包括: 1. 使用`extends`关键字创建子类。 2. 访问和覆盖父类的方法。 3. 添加子类特有的方法。 4. 多态性的应用。 通过学习这个实例,开发者能够更好地理解和运用Java的继承...
java 继承和多态PPT教程
Java继承是面向对象编程的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的...
Java继承机制详解 Java继承是面向对象编程(OOP)的一种机制,允许一个类继承另一个类的成员变量和成员方法。通过继承,可以实现代码的重用和扩展。 在Java中,继承是通过使用关键字`extends`来实现的。例如,`...
6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.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中,通过使用关键字`extends`,一个类可以声明其为另一个类的子类。...
1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字