admin管理员组文章数量:1642230
实例一、设计一个广告牌,达到可以展示不同公司广告词的作用
。
1、接口Advertisement,声明每个对象必须要做的事情,即每个公司必须给出具体的广告词和公司名称。
public interface Advertisement {
public void showAdvertisement();
public String getCorpName();
}
2、AdvertisementBoard广告牌类,实现封装。通过添加一个Advertisement接口类型的成员变量(adver),存放任何实现Advertisement接口的类的引用,并回调类重写的接口方法。
public class AdvertisementBoard {
Advertisement adver; //声明接口变量
public void setAdver(Advertisement adver) {
this.adver = adver; //adver接收对象的引用
}
public void show() {
if(adver!=null) {
System.out.println(adver.getCorpName()+"的公司的广告语是:");
adver.showAdvertisement();
}
else {
System.out.println("无广告!");
}
}
}
3、两个公司信息。
public class PhilipsCorp implements Advertisement{
public void showAdvertisement() {
System.out.println("$$$$$$$$$$$");
System.out.println("没有最好,只有更好");
System.out.println("$$$$$$$$$$$");
}
public String getCorpName() {
return "飞利浦";
}
}
public class Lenovo implements Advertisement{
public void showAdvertisement() {
System.out.println("****************");
System.out.println("让世界变得更好");
System.out.println("****************");
}
public String getCorpName() {
return "联想集团";
}
}
4、主函数中调用。不需要修改AdvertisementBoard类,体现了开闭原则。
public class Show {
public static void main(String[] args) {
// TODO Auto-generated method stub
AdvertisementBoard board=new AdvertisementBoard();
board.setAdver(new PhilipsCorp());
board.show();
board.setAdver(new Lenovo());
board.show();
}
}
实例二、U盘、Iphone状态说明
要求:创建一个A接口,接口中有三个抽象方法init(),start(),end();分别是初始化,启动和停止的功能。定义两个类来实现A接口,分别是Udisc、IPhone。每个类中都重写上述三个方法。创建一个测试类,在其中创建上述两个类的实例对象,并分别调用init()、start()、end()方法。创建一个MUlFunc类实现多态。注:运行效果中只要能输出类似于如下的文字即可——“U盘正在初始化”、“"U盘开始工作”、“U盘停止工作”,“IPhone正在连接”、“可以为IPhone导入导出文件了”、“IPhone已经被拔出”(即init( )、start(),end()三个方法中只需各写一条输出语句)。
package imulate;
public interface A {
void init();
void start();
void end();
}
package imulate;
public class Udisc implements A{
public void init() {
System.out.println("U盘正在初始化");
}
public void start() {
System.out.println("U盘开始工作");
}
public void end() {
System.out.println("U盘停止工作");
}
}
package imulate;
public class Iphone implements A{
public void init() {
System.out.println("IPhone正在连接");
}
public void start() {
System.out.println("可以为IPhone导入导出文件了");
}
public void end() {
System.out.println("IPhone已经被拔出");
}
}
package imulate;
public class MUlFunc {//通过添加一个接口A 类型的变量,存放任何实现A接口的类的引用,并回调类重写的接口方法
A article;
public void setArticle(A article) {
this.article = article;
}
public void prepare() {
article.init();
}
public void Start() {
article.start();
}
public void Over() {
article.end();;
}
}
package imulate;
public class example {
public static void main(String[] args) {
// TODO Auto-generated method stub
MUlFunc a=new MUlFunc();
a.setArticle(new Udisc());
a.prepare();
a.setArticle(new Iphone());
a.Over();
}
}
三、总结
实现通过接口实现多态第基本思路: 1、创建一个接口,说明他要实现的功能。
2、创建一个类,实现封装。在里面添加接口类型的变量,接收所有实现接口的变量的引用,并回调它们重写的方法。
2、创建变量,实现各自具体功能,要求重写接口所有的方法。 4、在主函数中创建实现一个封装的类型(步骤2中)的变量,通过set函数new
步骤3中的变量,从而实现他们的具体功能,完成效果。
版权声明:本文标题:Java 接口与多态 实例 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729328249a1196043.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论