继承是再普通不过的概念,但是你真的能玩的转吗?
父类Person
public class Person {
public void getName(){
System.out.println("person name");
}
public void getPersonAge(){
System.out.println("person age");
}
}
子类Student
public class Student extends Person {
public void getName(){
System.out.println("student name");
}
public void getStudentAge(){
System.out.println("student age");
}
}
测试类Test
public class Test{
public static void main(String[] args){
Person p = new Student();
p.getName();//输出student name,方法覆盖
((Person)p).getName();//注意这个也输出student name,覆盖的很彻底
p.getPersonAge();//输出person age
//以上三个方法说明了一点:这个p引用的是一个实实在在的Student对象
//在这个对象中会包含父类的非私有方法以及未被覆盖的方法
//其实父类中的这个被覆盖的方法也不是完全不能访问到,做法是在Student类中调用super.getName()
//有了以上这些概念之后,想一下下面这条语句如果p不进行强制类型转换的话为什么不能编译通过?
//原因在于p是Person类型的引用,它无法调用getStudentAge()这个方法
((Student) p).getStudentAge();//student age
}
}
分享到:
相关推荐
在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的主要目的是减少代码冗余,提高代码的可维护性和可扩展性。在Java中,我们使用`extends`关键字来表示一个类继承自另一个类。...
通过`java_中关于_继承_的一个小例子.docx`文档,可能包含了更详细的示例代码、解释或者练习题,旨在帮助学习者深入理解和掌握Java中的继承概念。在实际编程中,继承被广泛应用于构建层次化的类结构,如在游戏开发中...
"VC类继承例子"这一主题将深入探讨如何在Visual C++中利用继承来设计更加灵活和可扩展的软件结构。 首先,我们需要理解继承的基本概念。继承允许我们定义一个基类,其中包含了一些通用的属性和方法,然后创建一个或...
标题"继承的小例子"暗示我们将讨论关于Java继承的一些基础实例。 首先,让我们深入理解Java继承的概念。当一个子类继承一个父类时,子类就自动获得了父类的所有非私有(public和protected)成员,包括字段和方法。...
在这个例子中,`Dog`类继承了`Animal`类,并添加了一个新的成员函数`bark()`。由于继承,`Dog`类的对象可以调用`eat()`方法,这是从`Animal`类继承而来的。 接下来,我们来谈谈多态。多态有两种类型:静态多态...
Java继承例子.doc
这个例子将深入探讨C#中的对象继承机制。 首先,我们需要理解继承的基本语法。在C#中,子类通过使用冒号(:)来表示对父类的继承,并在类定义中指定。例如: ```csharp public class ParentClass { public int ...
通过一个具体的例子,我们将帮助初学者更好地理解和体会虚拟继承的工作原理。 首先,我们需要理解什么是继承。继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)中获取属性...
C++中public继承、private继承、protected继承的例子
在这个“C# 接口与继承的例子源代码”中,我们可以看到如何通过这两种机制来设计和实现类的结构。 接口是一种纯抽象类型,它定义了一组方法签名,但不包含任何方法的实现。通过声明类实现了某个接口,类就必须提供...
在C++编程语言中,封装、...通过学习和实践这些例子,开发者能够更好地理解和掌握C++的面向对象编程技巧,从而编写出更高效、更易于维护的代码。在实际开发中,封装、继承和多态是设计模块化、可扩展系统的关键工具。
在C#编程语言中,多态(Polymorphism)、继承(Inheritance)和接口(Interface)是面向对象编程的三大核心特性。结构(Struct)则是C#中的一个基本类型,与类(Class)有所不同。本篇文章将深入探讨这些概念,并...
在这个例子中,`ChildClass`继承了`ParentClass`的所有非私有(public和protected)成员。这意味着`ChildClass`对象可以访问`ParentClass`中的公共和受保护的方法及变量。 接下来,我们将深入到`Tryextend.java`的...
在C#编程中,"继承窗体的设计"是面向对象编程的一个重要概念,它允许我们创建一个新的窗体类,该类基于已有的窗体类,从而可以复用和扩展功能。这种方式大大提高了代码的可重用性和可维护性。本文将深入探讨C#中继承...
在这个"hibernate继承例子"中,我们将探讨如何利用Hibernate处理对象的继承关系,并将这种继承映射到数据库中的表结构。 在Java中,我们可以有单继承或多层继承的类结构。同样,Hibernate提供了一种方式,通过继承...
在Java编程语言中,继承、多态、集合和IO流是核心概念,它们构成了程序设计的基础框架。让我们逐一深入探讨这些知识点。 首先,**继承**是面向对象编程的一个关键特性,它允许一个类(子类)继承另一个类(父类)的...
这个例子展示了如何在自定义的Action类中继承`ActionSupport`,从而利用其内置的特性。 首先,`ActionSupport`类是所有Struts2 Action类的基类,它包含了以下几个关键功能: 1. **字段验证**:`ActionSupport`提供...
对java中继承的练习,一个简单的例子,通过描述大树的性质来进行理解。
在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。
以下是一些关于继承的编码练习题及其相关知识点: 1. **卡车和小轿车**: 这个题目可能涉及创建一个`Vehicle`类作为基类,包含共有的属性如速度、颜色等。然后,`Truck`和`Car`类继承自`Vehicle`,添加特定的属性...