精华内容
下载资源
问答
  • 继承,多实现

    2021-03-04 07:07:25
    java中一个类只能有一个直接父类[单继承],但是一个类可以实现多个接口[多实现]而且一个类可以继承一个父类的同时,实现多个接口格式:public class 类名 extends 父类名称 implements 接口A,接口B{//...}注意:子类/...

    java中一个类只能有一个直接父类[单继承],但是一个类可以实现多个接口[多实现]

    而且一个类可以继承一个父类的同时,实现多个接口

    格式:

    public class 类名 extends 父类名称 implements 接口A,接口B{

    //...

    }

    注意:

    子类/实现类,必须覆盖重写父类/接口中的所有抽象方法

    只要有剩余的抽象方法没有重写,该类必然是一个抽象类

    父类和接口中油重名的抽象方法,只需要覆盖重写一次

    多个接口中有重名的默认方法,实现必须覆盖重写一次

    父类中的普通方法和接口中的默认方法重名时,优先使用父类的普通方法

    多个接口中有重名的静态方法,也没有关系,因为静态方法只能使用借口名称调用

    接口中的常量

    接口中可以定义变量,但是都是常量,有默认修饰符[public static final]

    public 最大的访问权限

    static 静态,可以用接口名称直接访问

    final 最终的,不接改变的意思,是一个常量

    [public static final]是可以省略的,不写也有

    接口中的常量默认初始化值,认为是无效的,必须先赋值才能使用

    常量的命名规则:所有单词大写.中间用_隔开

    展开全文
  • 使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法可以实现多继承所需的功能,所以把它称为实现多继承。下面就举个例子:假如有一个打电话类Call,里面实现了一个可以打电话的功能的方法...

    在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承。

    那么,有没有办法,可以在不使用接口的情况下实现多继承呢?  答案是可以。

    使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法可以实现多继承所需的功能,所以把它称为实现了多继承。

    下面就举个例子:

    假如有一个打电话类Call,里面实现了一个可以打电话的功能的方法callSomebody(String phoneNum);

    一个发信息类SendMessage,里面实现了一个可以发信息功能的方法sendToSomebody(String phoneNum);

    还有一个手机类Phone,这个手机类想实现打电话和发信息的功能;我们知道可以用继承来获得父类的方法,但是只可以单继承呀,也就是说只可以实现其中一个类里面的方法,这并不满足我们的需求。

    接下来,我们就使用内部类,达到我们所需的目标了。

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    public classCall {public voidcallSomebody(String phoneNum){

    System.out.println("我在打电话喔,呼叫的号码是:" +phoneNum);

    }

    }

    Call类父类

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    classSendMessage {public voidsendToSomebody(String phoneNum){

    System.out.println("我在发短信喔,发送给 :" +phoneNum);

    }

    }

    SendMessage类

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    public classPhone {private class MyCall extendsCall{

    }private class MySendMessage extendsSendMessage{

    }private MyCall call = newMyCall();private MySendMessage send = newMySendMessage();public voidphoneCall(String phoneNum){

    call.callSomebody(phoneNum);

    }public voidphoneSend(String phoneNum){

    send.sendToSomebody(phoneNum);

    }public static voidmain(String[] args) {

    Phone phone= newPhone();

    phone.phoneCall("110");

    phone.phoneSend("119");

    }

    }

    Phone 类中 二个方法继承父类实现多继承

    这样就实现了callSomebody(String phoneNum) 和sendToSomebody(String phoneNum)这两个方法的功能呢。

    ————————————————

    版权声明:本文为CSDN博主「rocling」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/rocling/article/details/82350515

    展开全文
  • Java 接口多继承

    2021-02-13 00:10:24
    但是可以通过接口来实现类的多继承。(如何通过接口来实现多继承???)那么就一直以为Java里面是单继承,今天看FutureTask源码的时候发现,接口居然可以实现多继承通过下面例子学习下。一个类只能extends一个父类...

    按照理解,一般都是说Java 类是单继承,但可以实现多个接口。但是可以通过接口来实现类的多继承。(如何通过接口来实现多继承???)

    那么就一直以为Java里面是单继承,今天看FutureTask源码的时候发现,接口居然可以实现多继承,通过下面例子学习下。

    一个类只能extends一个父类,但可以implements多个接口。java通过使用接口的概念来取代C++中多继承。与此同时,一个接口则可以同时extends多个接口,却不能implements任何接口。因而,Java中的接口是支持多继承的。

    下面先对接口做个总结:

    1>接口中的成员变量默认都是public,static,final(都可省略),必须被显示初始化,即接口中的成员变量必须是常量。

    2>接口中的方法默认都是public abstract类型的(都可省略),没有方法体。

    3>接口中只能包含public abstract类型的成员方法和public static final类型的成员变量。

    4>接口中没有构造方法,不能被实例化

    5>一个接口不能实现(implements)另一个接口,但是可以多继承接口

    6>Java中必须通过类来实现接口中的抽象方法

    7>当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类

    8>不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例

    9>一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承

    下面给一个接口多继承的例子,注意打印的a的值

    1 packageLesson1218Thread;2

    3 public interfaceTestIFA {4 int a = 0;5 int b = 1;6 int c = 2;7

    8 voidprintInfo();9

    10 }11

    12 packageLesson1218Thread;13

    14 public interfaceTestIFB {15 int a = 4;16 int b = 5;17 int c = 6;18

    19 voidprintInfo();20 }21

    22 packageLesson1218Thread;23

    24 public interface TestIFC extendsTestIFA,TestIFB {25 //int d = 4;

    26 int a = 7;27 }28

    29 packageLesson1218Thread;30

    31 public class IFDemo implementsTestIFC{32

    33 public static voidmain(String[] args) {34

    35 IFDemo ifdemo = newIFDemo();36 System.out.println("a is "+ifdemo.a); //a is 7, 因为这个地方实现接口TestIFC, 若是TestIFB, 则输出a is 4.

    37

    38 }39

    40 @Override41 public voidprintInfo() {42 System.out.println("which IF ?????");43

    44 }45

    46 }

    重点关注line36,   测试类实现哪个接口,输出的a就是哪个接口定义的值。

    问题1:若同时实现两个接口,调用里面相同变量 , 编译错误。 如下:

    1 packageLesson1218Thread;2

    3 public class IFDemo implementsTestIFA,TestIFC{ //同时实现两个接口4

    5 public static voidmain(String[] args) {6

    7 IFDemo ifdemo = newIFDemo();8 System.out.println("a is "+ifdemo.a); //编译错误

    9

    10 }11

    12 @Override13 public voidprintInfo() {14 System.out.println("which IF ?????");15

    16 }17

    18 }

    line8 会报编译错误: The field ifdemo.a is ambiguous

    程序不能找到应该调用哪个里面的a.

    结论:接口多继承时,接口里面有定义相同的变量,如果实现类要调用相同变量,必须显示指出来。如 TestIFA.a 。

    问题2:同时实现两个接口,若接口中的成员方法名字相同,但是返回值不一样,

    1 packageLesson1218Thread;2

    3 public interfaceTestIFA {4 int a = 0;5 int b = 1;6 int c = 2;7

    8 voidprintInfo();9

    10 }11

    12 packageLesson1218Thread;13

    14 public interfaceTestIFB {15 int a = 4;16 int b = 5;17 int c = 6;18

    19 String printInfo();20 }21

    22 packageLesson1218Thread;23

    24 public interface TestIFC extendsTestIFA,TestIFB { //编译错误25 //int d = 4;

    26 int a = 7;27 }

    接口TestIFA中含有成员方法voidprintInfo();   而接口TestIFB中含有成员方法String printInfo();  两个成员方法返回值不一样。

    接口TestIFC想继承上面两个类,编译错误。The return types are incompatible for the inherited methods TestIFA.printInfo(), TestIFB.printInfo()

    结论:被多继承的接口中,不能有方法名相同,但是返回值不一样的函数。否则没法多继承。

    展开全文
  • Java继承和接口实现

    2021-03-01 08:10:06
    /*** 继承*/public class ExtendsTest {public static void main(String[] args) {// 参数为空的构造方法,如果没有其他构造方法,系统自动提供该构造方法。// 如果有其他构造方法,系统不会自动提供,需要手动编写A...

    package com.what21.base09;

    /**

    * 继承

    */

    public class ExtendsTest {

    public static void main(String[] args) {

    // 参数为空的构造方法,如果没有其他构造方法,系统自动提供该构造方法。

    // 如果有其他构造方法,系统不会自动提供,需要手动编写

    A a = new A(1111111);

    a.print();

    // 继承A类

    // java不支持多继承

    SubA subA = new SubA(2222222);

    // 继承了A类的属性

    System.out.println(subA.i);

    // 继承了A类的方法

    subA.print();

    subA.plus();

    }

    }

    class A{

    int i;

    A(){

    // 空构造方法

    }

    A(int i){

    // 带参数的构造方法

    this.i = i;

    }

    public void print(){

    System.out.println(i);

    }

    }

    class SubA extends A{

    SubA(int i){

    // 调用父类带参数的构造方法

    super(i);

    }

    public void plus(){

    System.out.println(i+i);

    }

    }

    package com.what21.base09;

    /**

    * 接口实现

    */

    public class ImplTest {

    public static void main(String[] args) {

    // 实现IA接口

    SubImplA subA = new SubImplA();

    // 实现IA接口中的print方法

    subA.print();

    // 实现IA接口

    SubImplB subB = new SubImplB();

    // 实现IA接口中的print方法

    subB.print();

    }

    }

    interface IA{

    public static final String A = "aaaaaa";

    /**

    * 接口方法定义

    */

    public void print();

    }

    class SubImplA implements IA{

    @Override

    public void print() {

    // 实现IA接口中的print方法

    System.out.println(A);

    }

    }

    class SubImplB implements IA{

    @Override

    public void print() {

    // 实现IA接口中的print方法

    System.out.println(A + A);

    }

    }

    展开全文
  • 继承Thread 实现多线程 , 是 ‘ 不 易 ’ 实现 资源共享 , 而不是 不能实现资源共享 !!! 看看现在网上的有些文章 (包括一些所谓的面试宝典,文字简短但是害人不浅),随便截一个图: 然后类似的例子 ...
  • 继承Thread类实现多线程简单实例

    千次阅读 2021-12-05 15:29:09
    文章目录继承Thread类实现多线程简单实例一、线程的意义二、为什么通过多线程可以提高用户体验,避免ANR三、电路图四、总结问题讨论问题和建议五、代码 一、线程的意义 1.为什么要使用线程 (a)提高用户体验...
  • 展开全部Java对于多重继承是怎么实现的?首先回答这个问题之前,我需要说62616964757a686964616fe4b893e5b19e31333363363433明下什么继承?...1.2单继承就是一个类只可以继承自一个父类,多继承是指...
  • 继承介绍继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承即常说的is-a关系。子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,...
  • 为参数),在以O为极点,x轴的正半轴为极轴 (理科加试)在极坐标系中,实现P是曲线ρ=12sinθ上的动点,Q是曲线ρ=12cos(θ-π6)上的动点,试求PQ的最大值. (极坐标与参数方程)在极坐标系(ρ,程承θ)(0≤...
  • Java继承

    千次阅读 2021-02-13 02:17:13
    什么继承呢?类似人类中的继承(继承上一辈、上上辈的东西),在Java中就是将一个已知的类进行拓展,让一个新的类来继承这个已知的类,这样就能使这个新的类具有已知类的属性和行为。新的这个类被称为子类或者派生类...
  • 1,java类可以一次继承多个接口,用implements 接口1,接口22,如果是接口继承接口的话也可以用extends,接口是多继承的,java类才是单继承3,接口继承接口可以不实现父接口中的方法,可以声明自己的新方法,4,类...
  • 本文实例讲述了java的继承原理与实现方法。分享给大家供大家参考,具体如下:继承1.java中是单继承的。每个子类只有一个父类。语法:子类 extends 父类2.在java中,即使没有声明父类,也有一个隐含的父类,就是...
  • JS继承实现方式

    千次阅读 2020-12-24 11:50:23
    那么如何在JS中实现继承呢?让我们拭目以待。既然要实现继承,那么首先我们得有一个父类,代码如下://定义一个动物类functionAnimal (name) {//属性this.name = name || 'Animal';//实例方法this.sleep = function...
  • 实现继承的几种方法

    2021-05-31 21:58:26
    1、继承第一种方式:对象冒充 function Parent(username){ ... //通过以下3行实现将Parent的属性和方法追加到Child中,从而实现继承 //第一步:this.method是作为一个临时的属性,并且指向Parent所指向的对象, /
  • 接口之间的多继承

    2021-02-18 19:24:58
    2.类与接口之间是多实现的,一个类可以实现多继承。 3.接口与接口之间是多继承的。 我们来重点解释第三条。 举例: public interface MyInterface1 { public abstract void method1(); public abstract ...
  • 伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现。如果要自己设计,无论是给自己看,还是给别人看,势必要输出一些文档,清晰地整理出思路。关于文档,有些人会用文字,但是再的文字在绝...
  • python类继承(super继承

    千次阅读 2020-12-23 11:09:27
    1. python2和python3中定义类的形式不同python3中只有只有新式类class A(object): # python3中定义新式类class A: # python3中定义新式类(省略object)... # python2中定义经典类新式类和经典类只要区别在继承搜索顺...
  • 实现类 public class UserServiceImpl implements UserService { @Override public void get() { } } 子类 public class UserServiceChild extends UserServiceImpl{ } 测试类 @SpringB.
  • Java 8: 事实上的多继承语言

    千次阅读 2021-03-13 21:00:13
    然而,Java 的类单继承、接口多继承的设计,最终使 Java 走上了多重继承的老路,这最后一根稻草就是 Java 8 的 default 关键字。Java 为什么设计成单继承Java 语言在设计之初显然受到了 C++ 的很大影...
  • 理解JS原型链到实现继承

    千次阅读 2021-03-22 21:42:06
    JS是通过原型链的方式能够像一些基于类的语言(如Java、C++)一样实现了类的功能,并且也可以通过原型链进行继承。但是,由于原型链的灵活,在ES5的语法中有许多方式能够实现继承,可能你有过和我一样的迷惑,到底哪...
  • java中继承指的是什么

    千次阅读 2021-03-06 15:57:29
    java中继承指的是什么发布时间:2020-08-20 14:46:11来源:亿速云阅读:55作者:小新这篇文章将为大家详细讲解有关java中继承指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以...
  • java继承的作用在于你能够在派生类当中通过重写某些方法实现对现有代码的自定义。假如,没有继承的话,你想要利用现有的代码,那么你就只有2种方法可以用了。一个就是,直接在原有的代码上面进行修改,这样的话,...
  • 匿名用户1级2019-04-14 回答A选项,对。java中类之间只能够实现继承,即就是说一个类只能有一个父类,但允许多层继承,即就是一个类有...但,类对于接口的话,类可以实现多个接口,即使不同接口有相同的抽象方法,...
  • JAVA中什么继承

    千次阅读 2021-02-12 10:29:01
    展开全部继承在本职上是32313133353236313431303231363533e78988e69d8331333366306435特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。1.Java...
  • java怎么继承,使用什么关键字?

    千次阅读 2021-02-28 16:43:51
    继承是java面向对象编程技术的一块基石... (推荐学习:java课程)通过extends关键字可以实现类与类的继承class 子类类名 extends 父类类名 {}被继承的这个类称为父类,基类或者超类继承的这个类称为子类或者派生类。/...
  • 目管通过可形一般要成最重果成项理的,不允并实为项目许明书和工可证作说作分解结、工构分别。 项目衡量质量产品,许同现对应的项目一般于最有形终成果是产品,标不包括其指。 本进对每动将的成项作行估业活计发生...
  • 个python类继承

    2021-01-14 12:39:04
    您只是在更改创建实例时除了C.__init__之外还运行什么初始化器方法。C同时继承{}和{},并且由于继承顺序的不同,{}的所有方法都被{}上的方法所遮蔽。在如果需要根据构造函数中的值更改类继承,请创建两个不同结构的...
  • 展开全部首先,需要了解一下java关于类继承和接口实现的基础理论知识,如下:e5a48de588b63231313335323631343130323136353331333361326361类继承继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类...
  • Python多继承及MRO顺序

    千次阅读 2021-03-27 20:50:27
    方法解析顺序(Method Resolution Order),简称 MRO。用于在多继承时判断方法,属性的调用路径。
  • 在Java中,能实现多重继承效果的方式是A.内部类B.适配器C.接口D.同步更相关问题[多选] 档案编研选题必须考虑()[多选] 根据电子文件的概念,电子文件具有以下特征()[多选] 案卷题名应当包括哪些要素?()[多选] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,850,999
精华内容 740,399
关键字:

多继承通过什么实现