31百科知识网

31百科知识网

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

互联网 -
哈尔滨java编程有哪些优点呢

大家好,java语言可以通过什么实现多继承相信很多的网友都不是很明白,包括java为什么不能多继承也是一样,不过没有关系,接下来就来为大家分享关于java语言可以通过什么实现多继承和java为什么不能多继承的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

  1. Java里的继承是否要遵守《民法典》
  2. java如何证明私有属性不能被继承
  3. java语言可以通过什么实现多继承
  4. 为什么在应用程序的开发过程中使用接口而不是继承

Java里的继承是否要遵守《民法典》

需要的,父类的财产子类可以继承,不过父类留下的bug,欠下的性能帐,一样要继承。好在,税务局没有征收遗产税。

以前,政府不让多new,现在鼓励多new新对象,你new的多吗?

java如何证明私有属性不能被继承

当类中的属性被private修饰后,这个属性就被私有化了,只能在当前这个类中使用该属性。如果其他的类需要访问这个类的私有属性,那么这个类必须提供一个公共的方法给其他的类访问。

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

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

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

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

下面就举个例子:

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

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

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

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

classCall{

publicvoidcallSomebody(StringphoneNum){

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

}

}

classSendMessage{

publicvoidsendToSomebody(StringphoneNum){

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

}

}

publicclassPhone{

privateclassMyCallextendsCall{

}

privateclassMySendMessageextendsSendMessage{

}

privateMyCallcall=newMyCall();

privateMySendMessagesend=newMySendMessage();

publicvoidphoneCall(StringphoneNum){

call.callSomebody(phoneNum);

}

publicvoidphoneSend(StringphoneNum){

send.sendToSomebody(phoneNum);

}

publicstaticvoidmain(String[]args){

Phonephone=newPhone();

phone.phoneCall("110");

phone.phoneSend("119");

}

}

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

为什么在应用程序的开发过程中使用接口而不是继承

首先让我们了解一下Java接口和继承。

接口

在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

继承

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

为什么使用接口而不是继承

首先,一个类可以实现多个接口,但是只能继承一个对象,从可拓展性和耦合性的观点来说,接口是更加优秀的选择。需要什么功能,加一个接口实现就可以了。

interfaceSpeakable{voidspeak();}interfaceStudyable{voidstudy();}classStudentimplementsSpeakable,Studyable{privateStringname;publicStudent(Stringname){this.name=name;}@Overridepublicvoidspeak(){System.out.print(name+':spaeak');}@Overridepublicvoidstudy(){System.out.print(name+':study');}}

第二,使用接口,可以在不同的情况下,做不同的权限限制。

publicclassTest{ privatestaticStudentstudent=newStudent("飞升的码农"); publicstaticvoidmain(String[]args){ Speakablespeaker=asSpeaker(); speaker.speak(); //speaker.study();编译错误 Studyablestudyer=asStudyer(); //studyer.speak();编译错误 studyer.study(); } publicstaticSpeakableasSpeaker(){ returnstudent; } publicstaticStudyableasStudyer(){ returnstudent; }}

第三,接口也是可以继承接口的,所以,用接口可以同时实现两个功能,为何要选继承?!

总结

接口,可拓展,松耦合,可控制。

最后

最近正在做一周通过阿里云ACA认证课程的课程笔记和考试经验,欢迎大家关注。

好了,文章到此结束,希望可以帮助到大家。

Java语言的11大特点

标签:# 可以通过# 我的# 继承# 语言# 实现