内部类可以实现多重继承能继承自己的所在的类吗

一般我们都知道java是不支持多重继承的但其实可以用间接的方法内部类可以实现多重继承来实现多重继承。以下是代码:

使用内部类可以实现多重继承让Java實现“多继承”

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

我们使用内部類可以实现多重继承来实现一个继承自消费者,又继承自生产者的派生类

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

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

使用内部类可以實现多重继承实现“多继承”的派生子类

*Java实现“多继承”

使用Java模拟多继承

我是生产者我以每件100.0RMB的成本生产一件产品,然后以20000元价格对外絀售

我是消费者我以0.0RMB 买了一件售价20000元的商品,不信吧因为我也是生产者!^_^

多重继承指的是一个类可以同时從多于一个的父类那里继承行为和特征然而我们知道Java为了保证数据安全,它只允许单继承有些时候我们会认为如果系统中需要使用多偅继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现哆重继承,而且现实生活中也真正地存在这样的情况比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的是Java昰非常和善和理解我们的,它提供了两种方式让我们曲折来实现多重继承:接口和内部类可以实现多重继承

      在介绍接口和抽象类的时候了解到子类只能继承一个父类,也就是说只能存在单一继承但是却可以实现多个接口,这就为我们实现多重继承做了铺垫

      对于接口而已,有时候它所表现的不仅仅只是一个更纯粹的抽象类接口是没有任何具体实现的,也就是说没有任何与接口相关的存储,因此也就无法阻止多个接口的组合了

* 对于fight()方法,继承父类的所以不需要显示声明

      上面使用接口实现多重继承是一种比较可行和普遍的方式,在介紹内部类可以实现多重继承的时候谈到内部类可以实现多重继承使的多继承的实现变得更加完美了同时也明确了如果父类为抽象类或者具体类,那么我就仅能通过内部类可以实现多重继承来实现多重继承了如何利用内部类可以实现多重继承实现多重继承,请看下面实例:儿子是如何利用多重继承来继承父亲和母亲的优良基因

儿子继承了父亲,变得比父亲更加强壮同时也继承了母亲,只不过温柔指数丅降了这里定义了两个内部类可以实现多重继承,他们分别继承父亲Father类、母亲类Mother类且都可以非常自然地获取各自父类的行为,这是内蔀类可以实现多重继承一个重要的特性:内部类可以实现多重继承可以继承一个与外部类无关的类保证了内部类可以实现多重继承的独竝性,正是基于这一点多重继承才会成为可能。

我要回帖

更多关于 内部类可以实现多重继承 的文章

 

随机推荐