java如何区分同时继承的父类和实现的接口中相同的方法

问题是这样的:一个父类中有一个方法,一个接口中有一个与父类方法重名的方法,现在子类中要同时继承父类和实现接口,那么应该怎么区分子类的方法是重写的父类的还是实现的接口的。

基类代码:

public class Father {
  public Father() {
    System.out.println("基类构造函数{");
    show();
    System.out.println("}");
  }
  public void show() {
    System.out.println("基类----show");
  }
}

接口:

public interface Inter {
  public void show();
}

子类的实现方法:外部类继承父类,内部类实现接口,然后内部类实现一个方法返回继承接口的内部类实例

具体代码:

//外部类继承父类

public class Child extends Father{
  public static void main(String[] arf){

    //实例化父类并调用父类方法

    new Father().show();

    //实例化子类并调用实现接口的内部类实例的实现方法

    new Child().new InnerChild().getCallBack().show();
  }

  //重写父类的方法
  public void show(){
    System.out.println("extend基类-----show");
  }

  //内部类实现接口
  private class InnerChild implements Inter{
    //实现接口的方法

    @Override
    public void show() {
      System.out.println("implements");
    }

    //返回实现接口的方法的实例
    Inter getCallBack(){
      return new InnerChild();
    }
  }
}

运行结果:

基类构造函数{
基类----show
}
基类----show
基类构造函数{
extend基类-----show
}
implements

结果的最后一行实现的就是接口的方法,当然这又暴露出一个继承的问题,下一篇文章中详细说明。

时间: 2024-08-29 10:38:06

java如何区分同时继承的父类和实现的接口中相同的方法的相关文章

java中,一个类实现某个接口,必须重写接口中的所有方法吗

不一定,关键要看子类是否是抽象类.如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!1.抽象类定义抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象.通常在编程语句中用 abstract 修饰的类是抽象类.在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象:在java中,含有抽象方法的类称为抽象类,同样不能生成对象.抽象类是不完整的,它只能用作基类

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver错误在eclipse中的解决方法

在Eclipse中学习Java和数据库的连接调试程序过程中爆出java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver错误.虽然在classpath中已经添加了相关的路径,但是在Eclipse的这个工程中没有添加. 解决办法是工程名上点击右键-Properties(属性)-Java Build Path(Java构建路径)-Libraries()-Add External JARs(添加JAR)-找到一个mysql-connector-j

java基础知识总结--继承和接口

什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可.多个类称为子类,单独的那个类称之为父类,超类.或者是称为基类. 什么是接口? 接口在Java编程语言中是一个抽象类型,是抽象方法的集合,接口并不是类,编写接口的方法和类很相似,但是他们属于不同的概念,类描述对

java实验六(继承、接口、异常相关知识点)

定义一个学生类,定义一个大学生类和小学生类,这两个类是学生类的子类:定义一个选课接口,由大学生类实现该接口,并定义一个年龄异常处理,当小学生 年龄小于7岁时,弹出异常. import java.util.Scanner; interface XuanKe        //选课接口{    void xuanKe(String xuanke);} class AgeException extends Exception{    String message; AgeException(int a

Java中关于继承、类、多态、接口的知识点

继承 含义:在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类 优点:1)代码的重用性:2)子类扩展父类的属性和方法:3)父类的属性和方法可用于子类:4)设计应用程序变得更加简单 继承的实现: 关键字extends:继承其ted他类,可以继承public,protected public class Salary extends Employee super关键字: 作用:调用父类中重写的方法 注意:调父类构造器是第一句可执行语句:默认情况下子类会调用父类的无参

Java 第17章 继承

继承的概念 继承机制是面向对象程序设计不可缺少的关键概念,是实现软件可重用的根基, 是提高软件系统的可扩展性与可维护性的主要途径. 所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现 父类代码的重用,子类 “能吸收已有类的数据属性和行为,并能扩展新的能力.” 使用继承; 编写父类: class  pet{ //公共的属性和方法 } 编写子类,继承父类: class Dog extends pet(只能继承一个父类) {//子类特有的属性和方法} class Pengu

Java基础-学习笔记(十二)——抽象类和接口

1.抽象类的定义 java中可以定义一些不含任何语句的方法,它的方法体的实现方式可以交由子类来实现,这种方法叫抽象方法,只要类中有一个抽象方法,这个类就称为抽象类.含有抽象方法的类为抽象类,抽象类中所有的方法不一定全是抽象方法. 2.抽象类的规则 1)抽象类和抽象方法都需要用abstract关键字修饰 2)抽象类不能进行实例化,也就是不能用new创建抽象类的对象 3)抽象方法只需要声明,不用写语句 4)继承抽象类的子类只有在将从父类继承过来的所有抽象方法全部覆盖,该子类才能进行实例化,不然该子类

Java中的钩子方法

钩子方法是啥 钩子顾名思义就是用来挂东西的.那么要挂东西必须有个被挂的东西,要不就是铁环.要不就是墙的边沿.所以要能挂住东西必须要有个被勾住的铁环,要一个钩子.那么在java中也是同样的原理,你首先需要一个被挂在的东西,一个挂载的东西. 钩子的实现方法 是对于抽象方法或者接口中定义的方法的一个空实现,在实际中的应用,比如说有一个接口,这个接口里有7个方法,而你只想用其中一个方法,那么这时,你可以写一个抽象类实现这个接口,在这个抽象类里将你要用的那个方法设置为abstract,其它方法进行空实现,

Java学习日记基础篇(六)—— 抽象类、接口、final

抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 1 public class test1 2 { 3 public static void main(String[] args) { 4 } 5 } 6 7 class Animal 8 { 9 String name; 10 int age; 11 12 //动物会叫 13 public void cry() 14 { 15 System.o