父类
public abstract class A {
public void sayHello(){
System.out.println("sayHello in A");
}
public abstract void sayHi();
}
子类B
public class B extends A{
@Override
public void sayHi(){
System.out.println("sayHi() in B");
}
}
子类C
public class C extends A{
@Override
public void sayHi() {
System.out.println("sayHi() in C");
}
}
测试一下效果
public class Test {
public static void main(String[] args){
A a = new B();
a.sayHello();
a.sayHi();
a = new C();
a.sayHello();
a.sayHi();
}
}
结果是:
sayHello in A
sayHi() in B
sayHello in A
sayHi() in C
------
下面说下错误的写法。
在父类里没有写那个虚函数。
父类A
public abstract class A {
public void sayHello(){
System.out.println("sayHello in A");
}
}
子类B
public class B extends A{
public void sayHi(){
System.out.println("sayHi() in B");
}
}
测试
public class Test {
public static void main(String[] args){
A a = new B();
a.sayHello();
//a.sayHi(); 这句话是会报错的。、
//用父类指针指向子类,如果父类中没有这个方法,你即便指向的子类有这个方法
//也没有办法用这个父类指针来调用这个方法。(如果你真的想要这么做,就必须要审明一个虚函数。)
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以深入探讨Java中的两个核心概念:重写(Override)与重载(Overload)。这两个概念在面向对象编程中非常重要,尤其是在Java这样的语言中。 ### Java中的重写(Override) #### 什么是重写? ...
Java中的重写(Override)和重载(Overload)是面向对象编程中的两个核心概念,它们都是为了提高代码的灵活性和可复用性。 **重写(Override)** 是指子类能够重新定义父类中非私有(public或protected)的方法,以便在...
在Java中,多态性主要通过继承、接口和方法重写(Override)来实现。这里我们将深入探讨从虚拟机(JVM)的角度来看,Java如何通过方法重写来实现多态。 首先,理解Java的类加载机制对于解析多态性至关重要。当Java...
在面向对象编程语言中,如Java,方法重写(override)是一种重要的特性,它允许子类提供一个与父类相同签名的方法实现。这种方法的实现允许在运行时根据对象的实际类型来确定调用哪个版本的方法,这正是多态性的基础...
方法重写(Override)是指在子类中定义的一个方法,其名称、返回类型及参数列表正好与父类中某个方法的名称、返回类型及参数列表相匹配,这样可以重写父类的方法。在方法重写中,子类可以对父类的方法进行修改或扩充...
Java重写(Override)与重载(Overload)区别原理解析 Java 编程语言中有两个重要的概念:重写(Override)和重载(Overload)。这两个概念经常被混淆,但它们具有不同的作用和特点。本文将详细地介绍 Java 中的重写和...
在编程语言中,Java的重写(Override)和重载(Overload)是两个非常重要的概念,它们在类与对象的多态性中起到关键作用。理解并掌握这两个概念是成为一名合格的Java开发者的基础。 首先,我们来谈谈重写(Override...
Java中的重载(Overloading)和重写(Overriding)是面向对象编程中两个重要的概念,它们体现了Java的多态性。多态性是面向对象编程的三大特性之一,另外两个是封装和继承。 首先,让我们详细解释一下方法的重载。重载...
在Java编程语言中,`equals()` 和 `hashCode()` 方法是对象的基本组成部分,它们在很多场景下都发挥着至关重要的作用。这两个方法与对象的相等性比较和哈希表(如HashMap、HashSet)的运作紧密相关。这篇博客将深入...
Java 继承是面向对象编程中的一个核心概念,它允许一个类(子类或派生类)从另一个类(父类或基类)继承特性,从而实现代码的复用和扩展。方法重写则是继承机制中一个关键的特性,允许子类对父类的方法进行定制化,...
Java重写知识点详解 Java中的重写(Override)和重载(Overload)是两个重要的概念,它们都是指方法的定义方式,但是它们之间存在着明显的区别。 方法的重载 在同一个类中,可以定义多个方法,它们的方法名相同,...
在Java编程语言中,子类继承父类后,可以通过重写(Override)的方式改变或扩展父类的行为。本文将深入探讨Java中子类如何正确地重写父类的方法,并详细介绍重写的六大规则。 #### 一、重写概述 重写(Override)...
在Java编程语言中,方法的重载(Overloading)与重写(Overriding)是两个非常重要的概念。它们虽然只有一字之差,但其实质却大相径庭。理解这两者的不同对于深入掌握Java语言至关重要。 ### 一、重载(Overloading...
三、方法的重写(overwrite / override) 1. **引入**:方法的重写发生在子类中,当子类继承父类并需要改变或扩展父类的方法行为时。重写的方法必须与被重写的方法有相同的返回类型、名称和参数列表。 2. **举例**:...
在Java编程语言中,`@Override` 是一个重要的注解,它的主要作用是明确标识一个方法是重写了其父类中的方法。这个注解在代码的可读性和编译时的错误检查方面提供了显著的优势。下面我们将深入探讨`@Override` 的作用...
Java 中的@Override标签的深入理解 @Override标签是一个非常重要的标签,但是一般情况下,我们只是知道它的基本用途,即用于标记方法的重写。但是,这个小小的标签蕴藏着很多有趣的秘密。今天,我们就来深入探讨...
Java 中重载与重写的区别 Java 中的重载(Overloading)和重写(Overriding)是两个不同的概念,它们都是 Java 语言中实现多态性的手段。 方法重载(Overloading) 方法重载是让类以统一的方式处理不同类型数据的...
Java 中的重载(Overloading)与重写(Overriding)是两个重要的概念,它们都是实现多态性的重要方式,但两者之间存在着显著的区别。 **重载(Overloading)** 重载是指在同一个类中可以有多个同名方法,但这些...
Java方法重写是面向对象编程中的一个重要概念,它允许子类根据需要修改或扩展从父类继承而来的行为。在Java中,当一个子类创建了与父类中相同名称、参数列表和返回类型的方法时,我们就说这个子类重写了父类的方法。...
Java中的方法重载(Overloading)和重写(Overriding)是两个重要的概念,它们都是实现多态性的方式,但有着本质的区别。 1. **方法重载(Overloading)**: 方法重载是指在同一个类中可以有多个同名方法,但这些方法的...