java关于多继承和单继承
面试官说:java怎么实现多继承? 答:java不允许,不允许,不允许多继承。
面试官:我就是要实现多继承? 答:好吧,行。
首先要区分一下三个概念: 单继承 多级继承 多继承
1.单继承
java两个类之间可以有继承关系。 在多个类的情况下,一个类作为子类,它的的父类只有一个;同时,一个类作为父类,它的子类有很多个。
2.多级继承
发生在java3个及3个以上的类之间。 a类继承b类,b类继承c类,… 这样成一条长链,a类就可以实现多级继承,可以继承b类、c类、…
3.多继承
多继承在java概念上不允许,但是为了弥补不足,java也有了接口概念,弥补java不能实现多继承的缺陷。 多继承实现的方法有三种:多级继承,实现接口,内部类。 这里不多介绍多级继承和实现一个或多个接口。
-
内部类的介绍地址: 内部类介绍:常用类(一)内部类
class Call { public void callSomebody(String phoneNum){ System.out.println("我在打电话喔,呼叫的号码是:" + phoneNum); } }
class SendMessage { public void sendToSomebody(String phoneNum){ System.out.println("我在发短信喔,发送给 :" + phoneNum); } }
public class Phone { private class MyCall extends Call{ } private class MySendMessage extends SendMessage{ } private MyCall call = new MyCall(); private MySendMessage send = new MySendMessage(); public void phoneCall(String phoneNum){ call.callSomebody(phoneNum); } public void phoneSend(String phoneNum){ send.sendToSomebody(phoneNum); } public static void main(String[] args) { Phone phone = new Phone(); phone.phoneCall("110"); phone.phoneSend("119"); } }
这样就实现了callSomebody(String phoneNum) 和sendToSomebody(String phoneNum)这两个方法的功能呢。
-
优点:包装了内部类,实现了多继承。 不足:此类为内部类的包装,一般在公司不太适用,不能满足大多数开发需求,毕竟创建的一个类里有多个类。
下一篇:
Kotlin 高级函数实现回调详解