当前位置:首页 » 编程语言 » java多继承

java多继承

发布时间: 2023-07-06 15:21:49

java语言可以通过什么实现多继承

(1)通过实现多个接口。

(2)通过内部类实现多重继承。

publicclassFather{
publicintstrong(){
return9;
}
}

publicclassMother{
publicintkind(){
return8;
}
}

publicclassSon{

/**
*内部类继承Father类
*/
classFather_1extendsFather{
publicintstrong(){
returnsuper.strong()+1;
}
}

classMother_1extendsMother{
publicintkind(){
returnsuper.kind()-2;
}
}

publicintgetStrong(){
returnnewFather_1().strong();
}

publicintgetKind(){
returnnewMother_1().kind();
}
}

Ⅱ java中的接口为什么可以多继承,其他类不能呢

java 在编译的时候就会检查 类是不是多继承,如果出现多继承编译不通过。但是在java语法中接口是可以多继承的。

Ⅲ java类是否可以多继承,怎么实现多继承

类不能多继承,但是接口可以继承多个接口,所以通过接口来实现多继承的功能。

Ⅳ java中定义一个类可以同时继承两个类

java中一个类不能直接继承两个类。

比如说这样:class A extends B,C

不能这样写,因为java不支持多继承,但是可以像下面这样实现继承多个类:

class A extends B

class C extends A

这样C就同时继承了B和A两个类。



(4)java多继承扩展阅读

当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:

1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;

2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。

Ⅳ 使用内部类让Java实现“多继承”

使用内部类让Java实现 多继承

众所周知 Java没有像c++那样支持多继承 但是我们可以使用接口或内部类来模拟实现多继承

我们使用内部类来实现一个继承自消费者笑禅 又继承自生产者的派生类

实际上Java之所以设计出内部类这个概念 一方面是为了更好的封装性 另一方面就是借助内部类模拟实现多继承

首先我们定义一个消费者抽象基类

view plainprint?

/** * Consumer Class *@author androidyue *Last Modified 上午 */ public abstract class Consumer { protected float buyPrice protected abstract void buyGoods() }

迹升吵以下是生产者抽象基类

view plainprint?

/** * Procer Class *@author androidyue *Last Modified 上午 */ public abstract class Procer { protected float cost protected abstract void proce() }

使用内部类实现 多继承 的派生子类

view plainprint?姿侍

/** *Java实现 多继承

*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Procer { private ConsumerBuyer buyer

public void desribeMySelf(){ System out println( 使用Java模拟多继承 ) this proce() this buyer=new ConsumerBuyer() this buyer buyGoods()

}

@Override protected void proce() { st= f System out println( 我是生产者 我以每件 +st+ RMB的成本生产一件产品 然后以 元价格对外出售 ) }

class ConsumerBuyer extends Consumer{

@Override protected void buyGoods() { this buyPrice= f System out println( 我是消费者 我以 +this buyPrice+ RMB 买了一件售价 元的商品 不信吧 因为我也是生产者!^_^ )

}

}

}

在程序入口调用

view plainprint?

/** * the entrance of application *@author androidyue *Last Modified 上午 */ public class AppMain { public static void main(String[] args){ InnerClassDemo demo=new InnerClassDemo() demo desribeMySelf() }

lishixin/Article/program/Java/hx/201311/25912

热点内容
体检中心的无线网密码多少 发布:2025-02-09 05:40:15 浏览:515
脚本语言是编译还是解释 发布:2025-02-09 05:30:24 浏览:642
天墓密码结局是什么 发布:2025-02-09 05:25:52 浏览:437
如何找回因特网帐号的密码 发布:2025-02-09 05:20:05 浏览:373
树莓派源码 发布:2025-02-09 05:07:00 浏览:651
安卓手机为什么搜不到懂球帝 发布:2025-02-09 05:04:42 浏览:817
生命密码解读走什么 发布:2025-02-09 04:55:51 浏览:279
python常用正则表达式 发布:2025-02-09 04:42:53 浏览:179
机器人编程培训哪家好 发布:2025-02-09 04:37:44 浏览:308
上海怎么学习java 发布:2025-02-09 04:26:39 浏览:23