`

父类和实现的接口有相同的方法

 
阅读更多

转自:http://www.cnblogs.com/bethunebtj/p/4676063.html

Java子类的父类和要实现的接口有相同的方法/函数会冲突吗

 

答案是,不会。子类优先实现父类的方法,虽然父类的方法和接口的方法长得一模一样。

复制代码
class father{
    public void f(){}
}
interface sameInterface{
    public void f();
}
class son extends father implements sameInterface{
    public void f(){
        //本函数实际实现的是父类的f(),而不是接口的f()
    }
}
复制代码

注意:这种重叠在父类和接口均声明抛出异常时可能冲突。譬如,父类声明了异常1,接口声明了异常2。子类实现成员函数时,不能实现异常1或异常2,只能选择不实现异常。

复制代码
class exception1 extends Exception{}
class exception2 extends Exception{}
class father{
    public void f()throws exception1{}
}
interface sameInterface{
    public void f()throws exception2;
}
class son extends father implements sameInterface{
    public void f(){
        //只能选择不实现异常,实现exception1或exception2都会报错
    }
}
分享到:
评论

相关推荐

    WPF继承_子类继承父类,实现跨类调用方法

    - 子类继承父类后,将自动获得所有非私有(public或protected)成员,包括属性、方法和事件。 2. **WPF中的UI元素继承** - WPF的UI元素类层次结构是基于`System.Windows.UIElement`和`System.Windows....

    Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    Java的多态性是面向对象编程的一个核心特性,它允许我们使用父类(或接口)的引用指向子类(或实现接口的类)的对象。这样做的好处在于代码的灵活性和可扩展性,使得程序能够处理多种不同的对象类型,而不必关心具体...

    用反射的方式获取父类中的所有属性和方法

    5. 动态调用方法和设置/获取属性值: 一旦我们有了`Method`或`Field`对象,就可以在运行时动态地调用方法或设置/获取属性值: ```java Object obj = ...; // 父类实例 method.invoke(obj, parameters); // 调用...

    Java重写与重载(区别与用途)

     重写方法的方法名必须与父类或接口方法名相同,否则是定义新方法  重写方法的方法参数必须与父类或接口方法参数相同,否则是重载方法  重写方法的返回类型必须与父类或接口方法返回类型相同,否则是重载方法 ...

    抽象类与接口中方法的相同点和不同点

    * 抽象类可以有具体的方法和属性,而接口中不能有具体的方法和属性。 * 抽象类可以实现接口,但是接口不能继承或者实现类。 * 抽象类可以继承具体类或者抽象类,而接口可以继承借口。 实现类 实现类是指继承抽象类...

    实验3 抽象类和接口(2学时)

    2、以电话为父类,移动电话和固定电话为两个子类,并使移动电话实现接口:可移动。固定电话又有子类:无绳电话。定义接口及各类,明确他们的继承关系。 3、在实验2中所实现的Teacher类的基础上,修改Teacher类的代码...

    父类赋值给子类

    有几种方法可以实现这一点: 1. **构造函数参数**: 子类的构造函数可以接受一个父类对象作为参数,然后在构造函数内部,使用成员变量直接赋值或者通过 `base` 关键字调用父类的构造函数。例如: ```csharp ...

    java 实现接口和继承关系

    实现接口的类除了实现接口中的方法外,还可以定义自己的普通方法和构造方法。例如,在上面的例子中,`Dog`类可以添加更多的方法来描述其具体的行为,同时也可以自定义构造方法来初始化类的状态。 ### 类的继承 ###...

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

    - **定义**:当子类中的方法与父类中的方法具有相同的方法名、参数列表和返回类型时,称子类方法重写了父类的方法。 - **规则**: - 方法名、参数列表和返回类型必须完全相同。 - 子类方法的访问级别不能小于父类...

    以员工为编写一个程序,定义如下类:以员工为父类,该类包含员工的基本信息:姓名、年龄、部门。创建两个子类:经理类和工人类,输出经理和工人的工资。在父类中编写getSalary()方法,在子类中覆盖,实现多态。

    - `m_out()`:用于输出经理的基本信息,这个方法可以保持与父类相同或者稍作修改。 - `getSalary()`:实现了计算并输出经理的工资,这里直接返回了固定工资值。 ### 工人类(j_worker) 工人类也是从员工类派生...

    Java 接口和抽象类

    抽象类可以包含抽象方法和非抽象方法。抽象方法是没有实现的方法,仅仅是声明,而非抽象方法是已经实现的方法。在 Java 中,抽象类使用 abstract 关键字声明。 在上面的练习中,我们使用抽象类来编写 Java 程序。...

    java 子类对象赋值给父类对象的使用

    父类引用不能访问子类特有的方法和属性,但可以调用继承自父类的方法。 接下来,我们来看一下相关的知识点: 1. **方法覆盖**:当子类继承父类并重写父类中的方法时,通过父类引用调用该方法,将执行子类中的版本...

    codesys面向对象的方法属性动作接口

    codesys面向对象的方法属性动作接口是指在codesys中实现面向对象编程的方法、属性和动作接口。这种接口允许用户在codesys中实现面向对象编程,使用继承、多态和封装等面向对象编程的基本概念。 在codesys中,方法、...

    继承接口与多态--矩形类和正方形类中实现此接口,用来实现斜边的计算。

    在Java中,`super`关键字用来引用父类的成员,包括方法和字段。在子类中,当子类和父类有同名成员时,`super`可以用来调用父类的版本。例如,在`subClass`中,`super.x`和`super.doSomething()`分别访问父类`...

    ex5:从父类和实现中获取方法的无方法类

    当一个类实现接口时,它必须实现接口中的所有抽象方法,除非该类本身也是抽象类。 在"ex5"练习中,可能的要求是设计一个类,该类仅通过继承和/或实现来获取其行为,而不是定义自己的具体方法。这有助于模块化代码,...

    C#类的定义

    接口是一种完全抽象的类型,定义了一组方法但不提供具体实现。类可以实现多个接口以达到多继承的效果: ```csharp interface IRunnable { void Run(); } public class Runner : Student, IRunnable { public ...

    java接口的不同使用

    总之,Java接口是软件设计的重要工具,它定义了类的行为规范,支持多继承,提供了功能强大的默认方法和函数式接口。理解并熟练运用接口,能让你的Java代码更加优雅、可扩展和易于维护。在实际编程中,根据需求选择...

    再次详细说明在继承中的程序执行顺序,子类与父类到底哪个先执行

    它允许子类从父类中继承属性和方法,从而实现代码的重用和扩展。本文将深入探讨在继承中的程序执行顺序,以及子类与父类的执行顺序问题。 首先,我们需要了解Java或Python等面向对象语言中类的构造过程。当一个类...

    java子类重写父类的方法.doc

    - **解释**:子类重写父类的方法时,返回类型必须与父类方法相同。 - **示例**: - 父类方法:`public int method()` - 子类重写:`public int method()` —— 正确 - 子类错误重写:`public double method()` ...

    对DAL数据访问层的封装,一个泛型接口,一个实现泛型接口的父类

    “一个实现泛型接口的父类”可能是`BaseDAL<T>`,这个类会实现`IGenericDAL<T>`接口,为每个方法提供具体的实现。使用EF,这些方法可能通过`DbContext`对象与数据库进行交互,例如: - 在`Insert`方法中,会使用`...

Global site tag (gtag.js) - Google Analytics