Java学习

面向抽象编程
1.对象的向上转型:上转型对象不能操作子类新增的成员变量与方法父类 f=new 子类();2.Open-Closed Principle:系统应当对扩展开放,对修改关闭。(怎么办?面向抽象和接口啊!)3.面向抽象编程:设计类时,不该让类面向具体的类,而是面向抽象类。例子:设计抽象类SIM,以便扩展具体的运营商
public abstract class SIM {protected String number;protected String type;public abstract void setNumber(String number);public abstract void setType();public void show(){System.out.println(“类型:”+type+“号码”+number);}
设计手机类,重点是在手机类中添加SIM抽象类,等待子类具体实现。publicclass MobliePhone {private SIM sim;publicvoid setSIM(SIM sim){ this.sim=sim;}publicvoid showMessage(){sim.show();}
实现两种类型的SIM卡,设为移动和联通。(Type类型可以在构造函数中实现)
publicclass yidong extends SIM{@Override publicvoid setNumber(String number) { this.number=number;}@Override publicvoid setType() { this.type=“联通”;}主函数如下,若需要扩展SIM卡,只要继承SIM抽象类即可。如此设计即符合Java开闭原则。publicstaticvoid main(String[] args) {MobliePhone mp=new MobliePhone();SIM sim=new yidong();sim.setNumber(“123456789”);sim.setType();mp.setSIM(sim);mp.showMessage();sim=new liantong();sim.setNumber(“987654321”);sim.setType();mp.setSIM(sim);mp.showMessage();}
面向接口编程
1.接口:接口中只有抽象方法和常量,抽象方法一定是public,常量一定是public static,你看不到是因为系统隐藏了。类实现接口,若没有重写接口中的全部方法,这个类就是一个抽象类。接口要求一些类具有相同名称的方法,但不强迫这些类具有相同的父类。接口无法调用类中非接口方法。(很关键)如果一个方法的参数是接口类型,就可以将实现该接口的类的实例的引用传递给该接口参数,这个接口参数就可以回调类实现的接口方法。2.面向接口编程:核心思想是接口回调,与面向抽象编程有一定的相似性。例子:设计一个广告的接口。public interface Advertisement {设计Televison类用于播放广告,重点是设置接口的参数回调。
publicclass Televison {Advertisement adv;publicvoid setAdv(Advertisement adv){ this.adv=adv;}publicvoid advertise(){adv.showCompany();adv.showMess();}实现具体的广告类publicclass naobaijin implements Advertisement{@Override publicvoid showMess() {System.out.println(“收礼只收脑白金”);}@Override publicvoid showCompany() {System.out.println(“白金集团”);}
主函数如下,若需要扩展广告,只要实现Advertisement接口即可。如此设计即符合Java开闭原则。
main(String[] args) {Televison tv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值