Java实现多重继承:

Java没有多重继承,C++有,不过Java提供了Interface、extends和implement,多重继承的效果还是可以的:

  1 /**
  2  * Created by Franklin Yang on 2015.10.23.
  3  */
  4
  5 //
  6 interface Base {
  7     public void method1();
  8 }
  9
 10 interface aI extends Base{
 11     public void method2();
 12     public void method3();
 13 //    public void method4();
 14 //    public void method5();
 15 }
 16
 17 interface aII extends aI {
 18 //    public void method1();
 19 //    public void method2();
 20 //    public void method3();
 21     public void method4();
 22     public void method5();
 23 }
 24
 25 class aBase implements Base{
 26     public void method1() {
 27         System.out.println("类aBase实现接口Base的方法1");
 28     }
 29 }
 30
 31 class aB extends aBase implements aI{
 32 //    public void method1() {
 33 //        System.out.println("类aB实现接口aI的方法1");
 34 //    }
 35     public void method2() {
 36         System.out.println("类aB实现接口aI的方法2");
 37     }
 38     public void method3() {
 39         System.out.println("类aB实现接口aI的方法3");
 40     }
 41  42  43 //    public void method4() {}
 44 //    public void method5() {}
 45 }
 46
 47 class aD extends aB implements aII{
 48 //    public void method1() {
 49 //        System.out.println("类aD实现接口aI的方法1");
 50 //    }
 51  52  53 //    public void method2() {}
 54 //    public void method3() {}
 55     public void method4() {
 56         System.out.println("类aD实现接口aII的方法4");
 57     }
 58     public void method5() {
 59         System.out.println("类aD实现接口aII的方法5");
 60     }
 61 }
 62
 63 //  added by whyang
 64 class iB{
 65     public void depend1(Base b){
 66         b.method1();
 67     }
 68 }
 69
 70
 71 class aA{
 72     public void depend1(aI i){
 73         i.method1();
 74     }
 75     public void depend2(aI i){
 76         i.method2();
 77     }
 78     public void depend3(aI i){
 79         i.method3();
 80     }
 81 }
 82
 83 class aC{
 84     public void depend1(aII i){
 85         i.method1();
 86     }
 87     public void depend2(aII i){
 88         i.method2();
 89     }
 90     public void depend3(aII i){
 91         i.method3();
 92     }
 93     public void depend4(aII i){
 94         i.method4();
 95     }
 96     public void depend5(aII i){
 97         i.method5();
 98     }
 99 }
100
101
102 public class Isolate2{
103     public static void main(String[] args){
104         System.out.println("11111111");
105         iB base = new iB();
106         base.depend1(new aB());
107
108         System.out.println("22222222");
109         aA a = new aA();
110         a.depend1(new aB());
111         a.depend2(new aB());
112         a.depend3(new aB());
113
114         System.out.println("33333333");
115         aC c = new aC();
116         c.depend1(new aD());
117         c.depend2(new aD());
118         c.depend3(new aD());
119         c.depend4(new aD());
120         c.depend5(new aD());
121     }
122 }

跑一跑:

11111111
类aBase实现接口Base的方法1
22222222
类aBase实现接口Base的方法1
类aB实现接口aI的方法2
类aB实现接口aI的方法3
33333333
类aBase实现接口Base的方法1
类aB实现接口aI的方法2
类aB实现接口aI的方法3
类aD实现接口aII的方法4
类aD实现接口aII的方法5

Process finished with exit code 0
时间: 2024-10-31 01:51:58

Java实现多重继承:的相关文章

Java提高篇——Java实现多重继承

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

java中接口与多重继承的关系

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确.合理

【转】Java基础知识总结

写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ------------------------------------------------------------------------------------

JAVA中static,this,extends,super,package

static关键字: static可以用来修饰方法和成员变量,由static修饰的成员变量的值在该类所有实例化出的对象中通用 方法:方法分为成员方法(实例方法)和类方法(由static修饰,又叫做静态方法),可以在实例方法中操作静态变量和实例变量,可以在类方法中操作类变量 变量:变量分为成员变量和局部变量(定义在方法,语句中作用范围小),成员变量又分为类成员变量(有static修饰)和和实例成员变量 this关键字: 1.this是当前类的内部对象,所以和类的外部对象(一般来说在new一个新对象

Java编程思想读书笔记

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4290955.html 第一章对象导论... 1 第二章一切都是对象... 4 第三章操作符... 10 第四章流程控制... 12 第五章初始化与清理... 14 第六章访问权限控制... 15 第七章复用... 23 第八章多态... 2

java基础三 [深入多态,接口和多态](阅读Head First Java记录)

抽象类和抽象方法 1.抽象类的声明方法,在前面加上抽象类的关键词abstract abstract class canine extends animal{ public void roam(){} } 抽象类除了被继承过之外,是没有用途,没有值,没有目的.类中的方法可以当做子类的合约内容,合约是对其他程序的承诺协议 抽象类中可以带有抽象和非抽象的方法 如果类中有抽象方法,则类必定标识为抽象的. 2.抽象的方法没有实体 (因为方法中的程序代码没有意义.抽象类需要被extend过有意义,抽象方法一

java基础知识总结:

因内容较多,提供原文链接下载. 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. --------------------------------------------------------------------

Java基础知识点总结

转:http://my.oschina.net/u/267295/blog/52716 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ----------------------------------------

Java接口和抽象类有什么区别,哪些时候用接口,哪些时候用抽象类?

Java接口和抽象类有什么区别,哪些时候用接口,哪些时候用抽象类? 2013-01-05 17:16:09|  分类: JAVA |  标签:java  |举报|字号 订阅 下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造方法.2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法.4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclips