JAVA基础:三、接口 静态工厂01

  多态
1、复习
2、新内容
一、面向对象的应用
  被客户不断变化的需求折磨:客户的需求总是在不断变化过程中
  原因很简单、客户根本不知道自己需要什么东西,先给你提出一个需求。等你程序开发出来了,
  他用了,可能跟他想的、说的不一样,伴随着整个软件开发的生命周期。
  我们无法阻止客户变更需求,我们使用面向对象的设计方法,能让我们程序适应需求的变化。
  控制打印机程序,示例:
       继承的好处:1:提高了代码的复用性。
           2:让类与类之间产生了关系,提供了另一个特征多态的前提

二、抽象类和抽象方法
 面向对象:先抽象再具体。好处是什么?Boss谈话:我们要好好努力,为xxx而努力奋斗。
 ★抽象方法的语法特征:
 1、只有方法的定义没有方法体;(就没有完成的方法)
 2、用abstract修饰的方法;
 public abstract void eat();   //没有函数体?调用的时候执行什么?
 eat不太好写,亚洲人吃饭用筷子,欧美人用刀叉,印度人用手!怎么办?稍后解释
 ★抽象类的语法特征:
 某个类中含有抽象方法,那么就称之为抽象类,同样有abstract修饰。
 1.抽象类不能够生成对象。只可以用来继承。(抽象类天生就是用来当爹的!)
 2.一个类中如果包含抽象方法,那么这个类必须被声明成抽象类。
 3.抽象类的子类一定要必须去实现父类的抽象方法。
 4.若子类不能帮助父类实现抽象,那么子类就是一个抽象类。只能有子类的子类再去完成
 5.如果一个类中没有抽象函数,这个类也可以被声明成抽象类。(为啥?防止这个类被生成对象)
 public abstract class Person {}            //抽象类:基类
 ★抽象类可以有构造函数吗?
 1、抽象类不能生成对象。2、构造函数用于生成类的对象。 
 结论:???见示例
 抽象类不能生成对象,但是却可以拥有构造函数,是为子类调用准备的。
 ★抽象类的作用?(抽象类的必要性)
 汽车?开汽车drive()的方法没有办法给具体的方法体?手动档自动档开法不一样!
 无法给出具体的驾驶方法,要看具体类型的汽车再来定义具体的驾驶方法。
 那么把这个方法定义成抽象的,把这个汽车类也定义成抽象的。
 练习:把打印机的打印方法也定义成抽象的。(打印方法不同:HP是喷墨打印机/佳能是激光打印机)
三、接口、(虚的,没有什么作用?)
 什么是接口:
  现实世界的接口:
   例如USB接口,可以接这么多设备(手机、mp3、电扇、鼠标、冰箱)
                (定义了一个标准:传递数据标准、供电标准)
  面向对象世界的接口:
   定义了接口,就是定义了调用对象的标准。
 接口的基本语法:
  接口就是比较纯粹的抽象类;
  在接口中可以省略abstract,默认都是抽象方法。
  (方法前面不用写abstract,接口里的方法都是public的。注意:接口就不允许有非抽象方法。)
  定义:public interface USB{}
 快速创建接口:右键——》new——》interface
 接口不能有子类。(不能被继承)
 接口也不能实例化生成对象,只能被实现(关键字:implements)。
 实现接口就必须要实现接口中的抽象方法。
 一个类可以实现多个接口(手机可以实现usb标准,也可以实现wifi接口,还可以实现蓝牙接口)
 接口实现动态多态,也可以使用接口的引用指向实现类的对象(实体)
 接口的应用:初学者对接口的使用比较困惑
  为什么要使用接口?
  工厂方法模式(非常常用的设计模式)
 总结:
 接口:定义接口interface、实现接口(implements)
 接口就不允许有非抽象方法。(只是将abstrct省略了而已)
 ★接口实现动态多态,也可以使用接口的引用指向实现类的对象!

四、final:关键字(修饰词)是最终的,不可以修改的意思。
 有三种用法:
 第一种:用来修饰变量,是不可以被修改的。一旦有的值就不能被修改。
 public final int age = 20;
 第二种:用来修饰方法,是不能被子类覆盖的。
 public final void fianlTest(){}
 第三种:用来修饰类:那么类就不能被继承
 final class FinalDo{}
发布了44 篇原创文章 · 获赞 7 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章