zoukankan      html  css  js  c++  java
  • 2020.7.24

    一、今日学习内容

       1、接口:接口是java语言中为解决无法实现多继承而提供的一种解决方案。接口中没有实际的方法实现,只定义了一些空壳,一个类可以通过实现接口来实现多重继                     承关系。

       (1)接口的例子:

    interface Student{
        int clas=0604;//设置班级
        void learning();//设置学习方法
        void eat(); //吃饭方法
        void sleep();//睡觉方法
    }
    class Student1 implements Student{
        public void learening() {
            System.out.println("学生正在学习");
        }
        public void eat() {
            System.out.println("学生正在吃饭");
        }
        public void sleep() {
            System.out.println("学生正在睡觉");
        }
    }

            接口中的方法都是抽象类,并没有方法具体实现。接口中的方法,必须由接口的实现类来实现。

          (2)接口的声明

               使用interface来定义一一个接口。接口定义同类的定义类似,也分为接口的声明和接口体,其中,接口体由常量定义和方法定义两部分组成。定义接口的基本格               式 如下。


               [修饰符] interface 接口名[extends 父接口名列表]{
                    [public] [static] [final]常量;
                    [public] [abstract]方法;

               }

               其中,

              修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。

              接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java 标识符。一般情况下,要求首字母大写。

              extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

             方法:接口中的方法只有定义而没有被实现。

             例:定义一个用于用户的接口,在该接口中定义了两个方法,具体代码如下

    public interface UserDao{
         public void adduser (String uname) ;//定义一个增加用户的方法
         public void delUser (String uname);//定 义一个删除用户的方法
    }

          (3)使用接口

               a.接口的使用:接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下。

                  [修饰符] class <类名> [extends父类名] [implements 接口列表] { }

               例:

    public  class UserDaoImp1 implements UserDao {
         public void adduser (String uname) {
              System. out. println ("UserDaoImpl addUser : "+uname) ;
          }
         public void delUser (String uname) {
              Sys tem. out.println ("UserDaoImpl delUser : "+uname) ;
         }
    }

            对于接口的使用,是必须由接口的实现类来实现的,这就不得不使用到接口的实例化了。接口的实例化如下。

              接口 对象名=new  接口的实现类();
             例如: UserDao dao = new UserDaoImp1();

           b.接口的特征归纳

              (1) Java接口中的成员变量默认都是public、static、final 类型的,而对于public、staticfinal其实都可以省略,接口中的成员变量为常量,并且建议全部使用大写,            单词之间用" "分隔。
              (2) Java 接口中的方法默认都是public、abstract 类型的,并且public和abstract 是可以省略的,接口中的方法没有方法体,不能被实例化。

           例:

    public interface A{
        int CONST = 1; //合法,CONST默认为public,static,final类型
        void method() ; //合法,method ()默认为public,abstract类型
        public abstract void method2 () ://method2 ()显示声明为
        public,abstract类型
    }

          (3) Java 接口中只能包含public、static、 final 类型的成员变量和public、abstract 类型的成员方法。

    public interface A{
        int var; //错,var是常量,必须显示初始化
        void method(){...}; //错,接口中只能包含抽象方法
        protected void method2() ; //错,接口中的方法必须是public类型
        static void method3() {...}; //错, 接口中不能包含静态方法
    }

        (4)接口中没有构造方法,不能被实例化。

        (5)一个接口不能实现(implements)另一个接口,但它可以继承多个其他的接口。

    public interface A{
       void methodA() ;
    }
    public interface B{
       void methodB() ;
    }
    public interface C extends A, B //C 称为复合接口
    {
         void methodC() ;
    }
    public interface C implements A{...} //

       (6) Java接口必须通过类来实现它的实现类来实现抽象方法。

      (7)当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则,这个类必须声明为抽象的。
      (8)不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例。
              public class B implements A{ }
               A  a=new B();//引用变量a被定义为A接口类型,引用了B实例
               A  a= new A();//错误,接口不允许实例化
      (9)一个类只能继承一个直接的父类,但可以实现多个接口,间接地实现了多继承。
            public class A extends B implements C,D{...} //B 为class,C,D为interface

    二、遇到的问题

        对知识记不牢固

    三、明日计划

       继续学习第六章的内容

  • 相关阅读:
    2.如何安装vmvare tools
    1.如何安装ubuntu
    14.如何读取配置文件的键值对
    android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?
    如何使用jedis进行发布订阅
    如何使用mybatis对mysql数据库进行操作,batis的增删改查
    如何解释json的字符串
    redis可视化工具redisClient
    如何连接远程redis,并且选择某个库进行操作
    理解RESTful架构
  • 原文地址:https://www.cnblogs.com/wmdww/p/13374813.html
Copyright © 2011-2022 走看看