接口

一、抽象类
    什么是抽象类?
      1.有abstract修饰的类就是抽象类
        1)有抽象方法的类一定是抽象类,抽象类不一定有抽象方法
         2)有构造器,但是不能实例化。
         3)抽象方法的关键字不能省略
      2.接口是特殊的抽象类,关键字是interface
        1)如果有方法,一定都是抽象方法*
        2)如果有属性,一定都是常量*
        3)没有构造器,不能实例化*
      3. 强调:有抽象方法的类一定是抽象类,
        但是抽象类中不一定要有抽象方法
      4. 抽象类可以被继承:如果子类是一个普通的类,那么应该
        重写父类的抽象方法,写出{} 
        如果子类是抽象类,符合抽象类的特点即可。 



二、接口:interface
      特殊的抽象类,
    特殊在:如果有方法,一定是抽象方法,abstract关键字可以省略
        如果有属性,一定是常量,
        常量的修饰词:public static final 可以省略不写 
        常量的名字全都大写。
        没有构造器,不能实例化
        接口其实是一种协议,标准.
    接口与抽象类,类的关系. 



三、面向对象的三大特征:
      继承,封装,多态
    继承的好处:可以不用修改一个类,利用继承的特点,可以
          扩展这个类,生成一个子类,有利于二次开发
    封装的好处:提高代码的重用性,减少冗余,减少代码的可见性,相对
          安全。
    多态?
      1. 对象的多态?
        不同父类型的引用指向同一个对象,会有不同的行为功能。
        如: 当这个人处在公司时,只能有在公司的某些行为
        同一个人在家时,只能有在家的某些行为 
      2.变量的多态?
        同一个变量指向不同的对象时,会有不同的行为。
   方法的重载?
      学生上学的行为
      骑自行车
      做公交车
      开车
  


 

  



四、向上造型 
    1.父类型的变量指向子类型的对象 Aoo a=new Boo()
      1)在编译期间,变量调用的方法是父类型中的。
      2)运行期间,如果调用的方法是子类重写的,那么一定是调用子类的方法;
          如果没重写,那么调用的是父类中的方法
    2.变量调用的属性:一定是父类中的属性 ** 

四)向下转型
     1)将父类型的变量所指向的对象,转换成子类型的变量
    Aoo a=new Boo();//上
    Boo b=(Boo)a; 下
   有可能会出现 ClassCastException异常 
    Aoo a=new Coo();
    Boo b=(Boo)a;
   为了避免这种情况发生,需要使用instanceof进行判断
  2)判断变量所指的对象是不是某一类型
    上述代码应该改成:
    Aoo a=new Coo();
    if(a instanceof Boo){ 
      Boo b=(Boo)a;
    }
  编译期间:javac.exe只检查代码的语法是否正确


 

五)内部类
    1.概念:在类内部定义的类型,就叫内部类

    2.分类

      1)成员内部类:在类内部定义的,与方法并列的,是外部类的成员
      2)匿名内部类:没有名字,在方法中使用的
      可以创建接口的匿名子类
      可以创建抽象类的匿名子类
      可以创建普通类的匿名子类
    Foo foo=new Foo(){
      //重写方法
      public void run(){}
    };
六、API:(application programming interface)
    应用重写编程接口,就是开发文档
    javaAPI内,包含了大量已经开发好的功能(被封装到类
    含有常用的API(字符串操作,集合操作,IO流
    常用的包:
    java.lang包:内部含有常用的类型,不需要导入包,可
    java.util包:常用的类型,Scanner,日期Data,Canle
    java.net包:socket套接字符等
    java.io:输入输出流等
    java.math:math类

posted @ 2018-04-09 10:36  小鹿笔记  阅读(108)  评论(0编辑  收藏  举报