美文网首页
java_3_接口

java_3_接口

作者: 果芽软件 | 来源:发表于2018-01-30 21:30 被阅读111次

    一、定义接口

    1. 新的关键字:interface
    2. 以前写的类叫实现类,定义方式:public class Hello{}
    3. interface类叫接口类,定义方式:public interface Hello{}
    4. 实现类和接口类的区别:实现类的方法必须有方法体;接口类的方法只定义,没有方法体
    package com.implement;
    /*
     * 关键字:interface,表示接口类
     * 
     * 接口类的命令:以I开头作为标识(不强制要求,只是良好的书写习惯)
     * 
     * 接口只规定方法,不实现方法
     */
    
    public interface IStudy {
        //传入家庭作业,返回是否做完
        public boolean doHomework(String content);
        //传入课程号,返回学习成绩
        public int learn(String course);
    }
    
    

    二、实现接口

    一旦声明要实现某个接口,就必须开发接口规定的所有方法


    image.png image.png image.png
    package com.implement;
    
    import com.extend.Student;
    
    /*
     * 关键字:implements,实现
     * 
     * 后面跟接口类
     * 
     * 一旦实现某个接口,类名会报错,选择add unimplements methods添加没实现的方法代码
     * 
     * 等于生成了代码模板,再根据业务需求,写方法体的内容
     */
    public class StudentWL extends Student implements IStudy {
    
        @Override
        public boolean doHomework(String content) {
            System.out.println("开始做作业:"+content);
            return true;
        }
    
        @Override
        public int learn(String course) {
            System.out.println("开始学习:"+course);
            System.out.println("学完考试");
            return 60;
        }
    
    }
    
    

    三、 测试

    package com.implement;
    
    public class Test {
        public static void main(String[] args) {
    
            StudentWL wl3=new StudentWL();
            wl3.doHomework("家庭作业");
            wl3.learn("法语");
            
            //向上转型成接口类型
            IStudy wl4=new StudentWL();
            wl4.doHomework("家庭作业");
            wl4.learn("法语");
        }
    }
    
    
    
    image.png image.png image.png image.png

    四、接口的目的

    不extends继承、不implements实现:所有东西都自己写
    extends继承:东西自己不用写,通过继承,父类的属性和方法直接就有了
    implements实现:东西自己要写,但是可以使用接口生成代码模板

    继承和接口带来的好处:1、不用重复写代码;2、可以按模板写代码。

    这样可以让高级开发和初级开发分工合作,公共的代码高级写,初级继承;复杂的代码高级写接口做模板,初级实现接口生成模板代码

    相关文章

      网友评论

          本文标题:java_3_接口

          本文链接:https://www.haomeiwen.com/subject/eahhzxtx.html