java 可不可以继承多个类

如题所述

  1,java 是不可以继承多个类,java是单继承的,但是java 通过 接口可以实现多继承
  2,也就是说, 一个java类只能继承一个父类, 但可以有多个接口.
  3,若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量。如:
  public class classA // 父类 classA
  {
  private int num = 0;
  }
  public class classB // 父类 classB
  {
  private int num = 1;
  }
  public class classC extends classA,classB // 子类 classC 继承于 classA 和 classB
  {
  public static void main(String [] args)
  {
  classC obj = new classC();
  obj.print(); // 调用父类成员变量 num , 那 num 等于 0 还是 1 ?
  }
  public void print()
  {
  System.out.println(super.num);
  }
  }
  
  2.若一个子类继承的多个父类拥有相同方法,同时子类并未覆盖该方法(若覆盖,则直接使用子类中该方法),那么调用该方法时将无法确定调用哪个父类的方法。如:
  public class classA // 父类 classA
  {
  public void fun()
  {
  System.out.print("hello");
  }
  }
  public class classB // 父类 classB
  {
  public void fun()
  {
  System.out.print("hello");
  }
  }
  public class classC extends classA,classB
  {
  public static void main(String [] args)
  {
  classC t = new classC();
  t.print();
  }
  public void print()
  {
  super.fun(); // 调用父类中 fun 方法,但由于classA、classB都有fun()方法,将无法确定使用
  // 哪个父类中的方法
  }
  }
  
  因此,Java仅允许单继承,即一个子类只能继承于一个父类。但为了拓展子类的功能,Java使用接口以克服不使用多继承带来的不足。
  接口是一个特殊的抽象类,接口中成员变量均默认为 static final 类型,即常量,且接口中的方法都为抽象的,都没有方法体。
  资料来源:http://blog.sina.com.cn/s/blog_6ed1419201013x47.html
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
不能。
一个类不能直接继承多个类,java是单继承语言。
比如说这样:class A extends B,C 不能这样写,因为java不支持多继承。
但是可以像下面这样实现继承多个类:class A extends B,class C extends A,这样C就同时继承了B和A两个类了。本回答被网友采纳
第2个回答  2016-12-24
一个类不能直接继承多个类,java是单继承语言。
比如说这样:class A extends B,C 不能这样写,因为java不支持多继承。
但是可以像下面这样实现继承多个类:class A extends B,class C extends A,这样C就同时继承了B和A两个类了。
第3个回答  推荐于2017-11-26
java不可以同时继承多个类,但是可以实现多个接口的你这可能是继承KeyListener, ActionListener, MouseListener, MouseMotionListener 这几个接口吧 接口可以继承多个接口本回答被提问者采纳
第4个回答  2018-02-28
不能
如果可以多继承,假设有两个A C类 各自都含有一个方法method():名称,参数,返回值相同但具体逻辑不同,这时我写一个B类同时继承A,C,当我调用method()时就会产生问题:不知道该用哪个类中的方法
相似回答