小白教程

 找回密码
 立即注册
查看: 9300|回复: 3

请问一个父类实现子类接口的情况

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-5-31 12:20:25 | 显示全部楼层 |阅读模式
请教各位java大神,如果父类Parent有一个方法public void a(){},有一个子类Child继承父类Parent,同时实现接口IChild,IChild内定义了一个方法void a(),按道理来说,Child并没有实现接口中的方法,但是由于碰巧从父类继承了一个名字一样的方法,所以编译并没有报错,这样做有问题么,虽然可以运行,但是从java的运行原理机制上是否会有问题,性能是否会有影响?
  1. public class Parent {
  2.     public void a(){
  3.         System.out.println("a");
  4.     }
  5. }

  6. public interface IChild {
  7.     void a();
  8. }

  9. public class Child extends Parent implements IChild{
  10. }

  11. public class Main {
  12.     public static void main(String[] args) {
  13.         Child c = new Child();
  14.         c.a();
  15.     }
  16. }
复制代码


回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-1 01:32:51 | 显示全部楼层
父类实现子类接口?你这个问题描述有问题。
应该是,子类继承父类并实现和父类方法同名的接口。
如果这两个方法没有冲突(符合同名函数重载),从语法到运行机制来说都没问题,更不会有所谓的性能问题(性能问题不会因为方法同名而引起,而是和你方法内部的实现逻辑以及访问的资源相关)。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-1 09:28:13 | 显示全部楼层
你这个首先叙述是有问题的,你现在是一个类同时继承类和接口,子类没有方法,但是可以继承使用父类方法。子类需要实现接口的方法,碰巧父类方法和需要实现的方法同名,所以子类即由父类方法实现接口的方法。一般不是特殊场景应该不会进行这种设计。可以通过父类继承接口,然后子类继承父类来实现。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-6-1 21:14:43 | 显示全部楼层
子类继承的方法a实现了IChild接口中定义的方法。
这个不会产生你担忧的问题的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 12:23 , Processed in 0.028647 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表