Java中接口的多态详解

网友投稿 269 2022-08-29


Java中接口的多态详解

目录多态参数多态数组接口的多态传递现象总结

多态参数

就像我们现实生活中电脑的usb接口,我们既可以接受手机对象,又可以接受相机对象,等等,体现了接口的多态,查看以下代码

接口:

package InterfaceM;

public interface Interface {

public void join();

public void stop();

}

手机类:

package InterfaceM;

public class Phone implements Interface{

@Override

public void join() {

System.out.println(this.toString()+"接入了电脑");

}

@Override

public void stop() {

System.out.println(this.toString()+"离开了电脑");

}

}

相机类;

package InterfaceM;

public class Camera implements Interface {

@Override

public void join() {

System.out.println(this.toString()+"接入了电脑");

}

@Override

public void stop() {

System.out.println(this.toString()+"离开了电脑");

}

}

电脑类:

package InterfaceM;

public class Computer {

public void work(Interface interF){

interF.join();

interF.stop();

}

public static void main(String[] args) {

Camera camera=new Camera();

Phone phone=new Phone();

//将相机接入电脑

Computer computer=new Computer();

computer.work(camera);

compPwewfTLJMuter.work(phone);

}

}

多态数组

在computer类型的数组中,我们即可以存放多种对象类型的数组。而且对应不同的数组对象,我们可以做出不同的事件。

在刚才的上述代码中我们在phone类中加入call功能,要求有插入phone时,调用call函数

package InterfaceM;

public class Computer {

public void work(Interface interF){

interF.join();

interF.stop();

}

public static void main(String[] args) {

Camera camera=new Camera();

Phone phone=new Phone();

//将相机接入电脑

Interface []interf=new Interface[2];

interf[0]=camera;

interf[1]=phone;

Computer computer=new Computer();

for (int i=0;i

computer.work(interf[i]);

if (interf[i]instanceof Phone){

phone.call();

}

}

}

}

接口的多态传递现象

如果我们运行以下代码,由于ih并没有被teacher继承,会发生报错,但是当我们用ig继承ih之后,我们可以发现这样就不会报错。这样体现出了多态的继承传递现象。

public class Test {

public static void main(String[] args) {

IG ig=new Teacher();

IH ih=new Teacher();

}

}

interface IH{}

interface IG{}

class Teacher implements IG{

}

public class Test {

public static void main(String[] args) {

IG ig=new Teacher();

IH ih=new Teacher();

}

}

interface IH{}

interface IG extends IH{}

class Teacher implements IG{

}

总结

computer.work(interf[i]);

if (interf[i]instanceof Phone){

phone.call();

}

}

}

}

接口的多态传递现象

如果我们运行以下代码,由于ih并没有被teacher继承,会发生报错,但是当我们用ig继承ih之后,我们可以发现这样就不会报错。这样体现出了多态的继承传递现象。

public class Test {

public static void main(String[] args) {

IG ig=new Teacher();

IH ih=new Teacher();

}

}

interface IH{}

interface IG{}

class Teacher implements IG{

}

public class Test {

public static void main(String[] args) {

IG ig=new Teacher();

IH ih=new Teacher();

}

}

interface IH{}

interface IG extends IH{}

class Teacher implements IG{

}

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python生成ios固定代码模块脚本打包成exe文件(怎么把写好的python代码打包成exe)
下一篇:批量下载matplotlib.pyplot.subplots页面实例源码的python脚本
相关文章

 发表评论

暂时没有评论,来抢沙发吧~