java中允许多继承吗,java不支持多继承

  java中允许多继承吗,java不支持多继承

  继承是指一个子类可以同时继承多个父类,从而同时具有多个父类的特征,但缺点也很明显。

  如何解决写爬虫IP受阻的问题?立即使用。

  1.如果子类继承的父类有相同的成员变量,那么子类将不能确定在引用变量时使用哪个父类成员变量。

  如:

  public Class A//父类A

  {

  private int num=0;

  }

  PublicclassB//Parent ClassB

  {

  private int num=1;

  }

  公共classC扩展了classA,classB //子类class c继承了class a和classB。

  {

  公共静态void main(String [] args)

  {

  class c obj=new classC();

  obj . print();//调用父类成员变量num。num等于0还是1?

  }

  公共作废打印()

  {

  system . out . println(super . num);

  }

  }2.如果一个子类继承的多个父类有相同的方法,并且子类没有重写方法(如果有,直接使用子类中的方法),那么调用方法时将无法确定调用哪个父类的方法。

  如:

  public Class A//父类A

  {

  公共void fun()

  {

  system . out . print( hello );

  }

  }

  PublicclassB//Parent ClassB

  {

  公共void fun()

  {

  system . out . print( hello );

  }

  }

  公共类classC扩展了classA,classB

  {

  公共静态void main(String [] args)

  {

  class c t=new classC();

  t . print();

  }

  公共作废打印()

  {

  super . fun();//调用父类中的fun方法,但是由于classA和classB都有fun()方法,所以不会确定使用。

  //父类中的哪个方法

  }

  }所以Java只允许单一继承,也就是子类只能继承父类。但是为了扩展子类的功能,Java使用接口来克服不使用多重继承的缺点。

  接口是一个特殊的抽象类。默认情况下,接口中的成员变量是静态final类型,即常量,接口中的方法是抽象的,没有方法体。

  具体的方法只能由实现接口的类来实现,只有实现类的方法才会在被调用时被调用(没有歧义),所以不存在多重继承的第二个缺点;而且由于接口只有静态常量,但是由于静态变量决定了编译时的调用关系,所以即使有一定的冲突,编译时也会提示错误;但是引用静态变量一般直接用类名或者接口名,避免歧义,所以不存在多重继承的第一个缺点。当一个接口继承多个父接口时,这些缺点就不存在了。这就是为什么java不能继承更多的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: