精华内容
下载资源
问答
  • java只允许单继承

    千次阅读 2017-04-25 22:22:55
    java中类只能单继承,一个类只能有一个直接父类,可以有多个间接父类。 java通过接口来实现多继承,接口里只有方法的声明没有实现。 C++中可以实现多继承, 多继承可能会多继承可能会导致钻石环问题---假设...

      java中类只能单继承,一个类只能有一个直接父类,可以有多个间接父类。

    java通过接口来实现多继承,接口里只有方法的声明没有实现。

    C++中可以实现多继承,

    多继承可能会多继承可能会导致钻石环问题---假设2继承1,3继承1,4继承3,4继承2.当类1中含有变量id时,类2,3继承类1后各有变量id,此时类4中将有2个id(分别来自类2,类3).

    展开全文
  • 聊一聊为什么JAVA只允许单继承

    千次阅读 2021-03-11 17:28:19
    聊一聊为什么JAVA只允许单继承 在开始啊我首先给大家解释一个误区。JAVA并不是不允许继承,而是不允许”实现多继承“,也就是class是不允许继承的,interface允许继承。 为什么要这么设计呢? 从语言方面说,...

    聊一聊为什么JAVA只允许单继承

    在开始啊我首先给大家解释一个误区。JAVA并不是不允许多继承,而是不允许”实现多继承“,也就是class是不允许多继承的,interface允许多继承。

    为什么要这么设计呢?

    从语言方面说,JAVA是一个面向对象编程语言,JAVA更是抽象解释为万事万物皆对象,人是对象,桌子是对象,大海也是对象。

    public class Person extends Table,Sea{
    
    }
    

    看上面的代码,如果说我们允许多继承,从代码方面来看当然没啥问题。 但是你会发现人既是人又是桌子又是大海,这显然是不合理的,很容易让开发人员产生误解。
    所以JAVA在设计上就直接砍掉了多继承,让逻辑变得简单。所以我们可以这么写

    public class Man extends Person{
    
    }
    
    public class Woman extends Person{
    
    }
    

    我们可以说这个男人是人,这个女人是人。他们的根本属性没有变化。而且从”继承“这个名字来看,为啥叫”继承“,就是说明新的对象是被继承者的延续和扩展,从本质上也不改有变化。
    Java设计者为我们javaer考虑了很多啊,你看旁边的C还需要自己去做内存释放,我们就不需要,你说气不气。

    我在知乎上看到有人发了个对比图。
    C++设计师眼中的程序员:
    在这里插入图片描述

    Java设计师眼中的程序员:
    在这里插入图片描述
    并不是每个程序员都是变形金刚,这就跟我们使用应用一样越傻瓜式越好。

    但是在这里还是希望每个程序员都能够成长为变形金刚,共勉!!!

    展开全文
  • 为什么JAVA只允许单继承

    千次阅读 2015-09-09 08:50:49
     在Java语言中禁止多重继承:一个类可以具有多个直接父类。多重继承不合法的原因是容易引发意义不明确。例如,有一个类C,如果允许它同时继承A类与B类(class C extends A,B{}),假如A、B两个类都有同一种方法fun...
     一个类只能继承一个其他的类
    
         在Java语言中禁止多重继承:一个类可以具有多个直接父类。多重继承不合法的原因是容易引发意义不明确。例如,有一个类C,如果允许它同时继承A类与B类(class C extends A,B{}),假如A、B两个类都有同一种方法fun(),如果定义:
         C c = new C();
         那么c.fun()应该调用哪一个父类的fun()方法?无法给出答案,因此Java语言禁止多重继承。 但C++却是可以的,所以C++比起java在语法上却难了些。

         但一个类可以实现多个接口,这又是为什么?
         这一特性和上一特性结合使用,可以获得和多重继承相似的效果。

         现假如类C实现了A与B两个接口(class c implements A,B{}),且这两个接口都有一个抽象fun()方法,现在调用方法时没有任务不明确的地方,因为接口中的所有方法都是抽象,并且超类的任何方法都需在子类中地覆盖实现,所以调用时其实是调用自己本身的实现方法,没有什么调用不明确的说法。

    package com.jjyy.basic;
    
    public interface BaseInterfaceA {
    	void fun();
    }
    

    package com.jjyy.basic;
    
    public interface BaseInterfaceB {
    	void fun();
    }
    

    package com.jjyy.basic;
    
    public class BaseDemo01 implements BaseInterfaceA,BaseInterfaceB {
    
    	@Override
    	public void fun() {
    		System.out.println("实现接口类自己实现方法");
    	}
    	
    	public static void main(String[] args) {
    		BaseDemo01 demo01 = new BaseDemo01();
    		demo01.fun();
    	}
    }
    


    展开全文
  • Java类是单继承的。classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方法,A如何决定该...

    接口是常量值和方法定义的集合。接口是一种特殊的抽象类。

    Java类是单继承的。classB Extends classA

    java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……

    不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方法,A如何决定该继承那一个呢?

    但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。

    注意:

    1)一个类如果实现了一个接口,则要实现该接口的所有方法。

    2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。

    3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。

    展开全文
  • 主要介绍了java为什么不允许类多重继承允许接口多重继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java中单继承与多继承

    千次阅读 2015-05-06 22:39:23
    C++中支持多继承,但是在java之中不允许一个子类有多个直接父类,java对此进行了改良。
  • Java继承的定义与使用

    万次阅读 多人点赞 2018-10-21 12:00:25
    1.2.2 Java只允许单继承允许继承(一个子类继承一个父类)1.2.3 在继承时,子类会继承父类的所有结构。阿里java校招笔试题 继承   继承的主要作用在于,在已有基础上继续进行功能的扩充。 定义两个类(学生...
  • Java为什么只能单继承

    2021-01-18 10:38:09
    Java为什么只能单继承 Java中类不能多继承类是为了安全。因为无论是抽象类还是非抽象类都包含非抽象的方法(非抽象类也可能没有),当类可以多继承类时,被继承的不同的父类可能会有同名同参的方法,如果子类也没有...
  • Python的多重继承Java单继承

    千次阅读 2015-01-30 16:12:27
    最近在学习Python,了解到Python是允许使用多重继承的,与Java单继承不同。 仔细思考之后觉得Python的这种多重继承的设计更为合理些,更接近现实世界。因为我觉得一个物体不能严格的把它归为确定的某一类,拿动物...
  • 众所周知,Java是一种面向对象的只允许单继承的语言,这是每个Java程序员从业者都知道定理。 本文的目的,主要从两个方面来思考Java单继承的这个问题: 为什么Java类被设计为只能单继承? 怎样曲线实现多继承的效果...
  • Java中类的单继承,接口的多继承

    千次阅读 2017-10-22 10:30:21
    结论: Java类(class)是只能单继承;(classB Extends classA) Java接口(interface)是可以多继承...(PS:Java理论上是支持单继承,但是可以使用上面两种方式实现另一种意义上的多继承) 继承的表现形式: 单继承:一个
  • java继承单继承局限

    千次阅读 2019-03-31 17:45:10
    继承 :继承描述的是一种能力,可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 要使用继承,必须满足is-a原则.(代码复用性) 继承使用extends eg:Student,extends,person 继承语法:...
  • java如何实现多继承

    万次阅读 热门讨论 2018-09-03 16:26:00
    java中,原则上是不允许继承的,也就是类与类之间可以单继承。 那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以。 使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法...
  • 你这样认为的话,那java编译器还认为类c里面的抽象方法f也是一个值得保留的特性呢,这时候矛盾就来了... 但是用接口的话,就很单一了,所有的接口都没有实现~所以随便从哪个接口里来继承并覆盖这个方法都无所谓~ ...
  • Java 继承

    千次阅读 多人点赞 2017-08-23 17:43:54
    Java 继承(inheritance)是 Java 面向对象的三大重要特性之一(封装-encapsulation, 继承-inheritance, 多态-polymorphsim) Java 继承很好的管理了具有相似特征的类之间的关系(主要集中在成员变量、方法), 使程序可...
  • JAVA面向对象之继承

    千次阅读 2015-12-24 21:23:06
    继承是指通过某种机制使得当前定义的类可以使用现有类的所有可以继承的功能(属性和方法)而不用重新编写原来的类...JAVA只支持单继承,不允许多重继承,即一个类只能有一个父类,但可以有多层继承,即一个类可以继承
  • java为什么不允许多重继承

    千次阅读 2016-08-17 13:58:37
    李四:假设java允许多重继承,那么Son就可以重载Father和Mother中的方法,这两个方法的参数列表、方法签名都是一样的,java会搞不清楚到底是重载Father还是Mather的方法。但如果你把Father、Mother都改成interface,...
  • java 接口可以多继承

    万次阅读 多人点赞 2015-06-16 10:08:28
    java类是单继承的。classB Extends classA java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 以下是spring ApplicationContext 接口的代码,同时继承了多个接口 public interface...
  • Java继承

    千次阅读 2019-04-24 14:11:07
    Java中,所有的继承都是公有继承,没有C++中的私有继承和保护继承。 覆盖方法 直接使用同名方法来覆盖父类的方法。 使用super.可以指定调用父类的方法,相当于C++中使用 父类名::。 //java public doubl...
  • package cn.sxt.opp; public class TestInterface2 { } interface A { void testa(); } ...//接口可以多继承,类只有单继承 //接口C继承接口A和B interface C extends A ,B{ void testa(); ...
  • java中类的继承

    千次阅读 2019-04-24 15:05:51
    java中类的继承
  • java继承

    万次阅读 2017-12-11 16:56:35
    java语言中,类可以从其他类继承而来,并继承父类的成员和方法。 继承是简单但是非常强大:当你需要创建一个新类,但是已经有其他类,它已经包含了一些你需要的代码,那么你可以从已有的这个类,继承新的类。...
  • Java:不能多继承,只能单继承,但可以实现多个接口 C++:可以实现多继承。 例如: class A extends B implements C,D,E {} 2、如若写成 interface A extends B,C,D 可以编译通过,这样是不是违背了 JAVA...
  • Java继承的限制

    2017-10-08 21:10:55
    1、在Java只允许单继承。 2、子类不能直接访问父类的私有成员。 示例代码: public class ExtendsDemo02 { static class People{ private int age; public int getAge() { return age;
  • JAVA继承,重载,覆盖,private,sbstract

    千次阅读 2008-08-01 16:37:00
    1.继承syntax: class A extends B子类可以继承父类的所有成员变量和方法继承的作用通过继承可以简化类的定义java只允许单继承,不允许多重继承可以有多层继承例如 B继承A,C继承B, 那么C就间接继承了A子类继承了...
  • java中类的继承详解。

    万次阅读 多人点赞 2018-07-11 21:42:48
     Java继承具有单继承的特点, 每个子类只有一个直接父类.继承的特点Java继承通过extends关键字实现. 实现继承的类被称为子类. 被继承的类被称为父类. 父类和子类的关系, 是一种一般和特殊的关系. 例如水果和...
  • java实现多继承

    千次阅读 2015-03-13 12:17:09
    java中,原则上是不允许继承的,也就是类与类之间可以单继承。 那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以。 使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法...
  • java接口多继承

    千次阅读 2016-07-31 21:24:01
    2.java类是单继承的。classB Extends classA 3.java接口可以多继承。 Interface3 Extends Interface0, Interface1, interface…… 不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方法,A...
  • Java —— 接口可以多继承

    千次阅读 2017-04-13 12:32:06
    之前一直认为java单继承的,但那只是对类,今天学习Spring首次看到了多继承,顺便搜到了一篇笔记: 接口是常量值和方法定义的集合。 java类是单继承的: classB Extends classA java接口可以多继承: Interface3...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 353,323
精华内容 141,329
关键字:

java只允许单继承

java 订阅