美文网首页
Java语言中抽象类和接口的定义及其使用

Java语言中抽象类和接口的定义及其使用

作者: 黑铁选手 | 来源:发表于2019-08-12 19:02 被阅读0次

    学习目的

    学习掌握抽象类和接口的定义及其使用,如何测量代码的执行效率。

    相关技术、及其使用

    抽象类(abstract):
    定义一个抽象类就是相当于定义一个模板,起着模板的作用。
    在抽象类里面,我们可以定义代码块、构造方法、属性、静态常量、抽象方法和普通方法。但是,在main函数里面不能创建抽象类的实例化。
    抽象类的使用:
    使用extends 继承一个抽象类 ,如果继承了抽象类,就必须要把抽象类里面定义的抽象方法实现。如果不识闲这个抽象类,也可以把这个抽象类定义成文件
    例如:定义一个抽象类 BaseAndroidStudy ,在main函数里面不能对它进行实例化 。
    及 BaseAndroidStudy study = new BaseAndroidStudy("java编程思想","攻克腾讯");
    但是,可以通过创建抽象类的具体对象和匿名类的方法对抽象类进行实现
    例如:

    //创建抽象类的具体对象 1、 显示的创建一个类 继承与抽象类 创建这个类的对象
            Student xw = new Student("小王","Java编程思想","拿到一份好的offer");
            //2.使用匿名类 只使用一次
            BaseAndroidStudy zs = new BaseAndroidStudy("Java编程思想","高薪") {
                @Override
                public void StudyC() {
                    System.out.println("参加培训");
                }
            };
    

    抽象类里面定义代码块和属性

        //定义一个代码块
        {
            System.out.println("锻炼身体");
        }
        //定义一个属性 用于保存数据
        public String javaBook;
        public Dream dream;
    
    

    构造方法和普通方法以及抽象方法:

       public abstract void StudyC();//不知道如何去学就不需要实现 子类来实现abstract要使用
    
        //提供一个构造方法 给子类提供一个方法 给自己的属性赋值
        public BaseAndroidStudy(String javaBook,String dream){
            this.javaBook = javaBook;
            this.dream = new Dream();
            this.dream.name = dream;
        }
    

    抽象类里面定义内部类 :抽象类里面定义的内部类,在内部类里面可以定义构造方法、普通方法,并且,定义的这些方法都可以在内部类里面进行实现。
    例如:

    private class Dream{
            public String name;
    
            public void show(){
                System.out.println("我的梦想是:"+name);
            }
        }
    

    接口的定义和相关使用
    接口(interface):接口就是定义一套方法用于对象之间的通信,注:不要把接口理解为某一个物理存在的东西。
    接口里面默认的变量都是static final (常量)就是必须要初始化,并且常量默认大写,默认情况下不需要自己写 public static final,里面不能定义变量。
    接口里面不允许定义代码块、构造方法、普通(实例/对象)方法,只有抽象方法,默认public abstract
    如果需要定义就用default
    接口里面定义内部类默认public static
    例如:

    interface TestInterfance{
    
        int I = 100;
        int COUNT = 20;
    
        void test();
    
        class inner{
            int name;
            public void show(){
                System.out.println("内部类");
            }
        }
    }
    

    接口的实现:
    用implement 对接口进行实现,实现(继承)的时候可以对多个几口进行实现,实现(继承)的时候接口之间用 , 隔开
    例如:

    class  PXDClass implements TestInterfance,TestInterfance2{
         @Override
         public void test(){
            TestInterfance.inner in = new TestInterfance.inner();
             in.show();
         }
         @Override
        public void  test2(){
    
         }
    
     }
    

    测量代码的执行效率:

    abstract class  TimeTemplate{
        //通过实现这个方法获得具体测量的代码 不清楚就使用抽象方法
        public abstract void code();
    
        //实现测量 方法
        public void  calculate(){
            long start = System.currentTimeMillis();
    
            //测量的代码
            code();
            long end = System.currentTimeMillis();
            System.out.println(end-start);
        }
    
    }
    

    PS

    虽然今天学习的东西看着挺简单的但是,当拿到一个demo的时候就不晓得从那个地方开始下手,并且还是经过老师对这个demo进行分析后还是头大。比如说,拿到一个知识点你知道有哪些构成,需要如何定义,但是,拿到一个demo你就懵逼了,怎么入手,那个地方要写什么,那个地方要定义什么,就不晓得怎么搞。难受!!!

    相关文章

      网友评论

          本文标题:Java语言中抽象类和接口的定义及其使用

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