接口实例转换的例子:
package com.mydemo;
// 定义接口
public interface IChannel {
/**
* 抽象方法
* @return
*/
public abstract boolean connect();
}
package com.mydemo;
// 定义接口
public interface IMessage {
public static final String INFO = "接口知识"; // 全局常量
public abstract String getInfo(); // 抽象方法
}
package com.mydemo;
// 实现接口
public class MessageImpl implements IMessage, IChannel {
/**
* 方法覆盖
* @return
*/
@Override
public boolean connect() {
return true;
}
/**
* 方法覆写
* @return
*/
@Override
public String getInfo() {
// 判断连接是否正常
if(this.connect()){
return "接口实现---覆写的方法 + IChannel 接口";
}
// 获取消息
return "接口实现---覆写的方法" + IMessage.INFO;
}
}
package com.mydemo;
public class MessageImplDemo {
public static void main(String[] args) {
// 子类实例化父接口----利用子类对象的向上转型实例化了接口对象
IMessage iMessage = new MessageImpl();
//使用Object接收引用类型
Object object = iMessage;
// 对象强制转为IChannel接口实例
IChannel iChannel = (IChannel) object;
// 调用被覆写过的方法
System.out.println(iChannel.connect());
}
}
运行结果:
true