zoukankan      html  css  js  c++  java
  • 抽象类以及接口的异同

    /**
    * 抽象类的使用
    * @author Administrator
    *定义抽象类的目的是有时候我们需要一个很抽象的概念比如水果,只是想要使用它来分类,所以它的实例化是没有意义的
    *oneabstract a=new oneabstract()是不合法的,编译错误
    */

    public  abstract  class oneabstract {
    //可以有构造方法
        public oneabstract() {
     
        }
        //可以有变量
        public int aa;
    public abstract void a();
    public void ab(){
     
    }
    }
    //我们可以定义一个类继承oneabstract来获得里面的方法,如果这个类不是抽象的则必须重写抽象方法
    class b extends oneabstract{
     
        @Override
        public void a() {
            // TODO Auto-generated method stub
     
        }
     
    }
     

    public interface oneintface {
     
        /*不能有构造方法
         * public oneabstract(){
     
        }*/

     
        public int aa=1;
    //public    String a;
    public abstract void a();
    public void b();
    /**
    里面不能放private以及protected类型,因为接口的使用是要实现的,而private以及protected修饰的方法
    * 只能在当前类和当前包使用
    */

    //protected void c();
    /*同上,abstract不能和final放一起*/
     
    /*abstract 不能和static放一起因为static的作用是为了
    * 让所有的对象共享方法或者属性而实现接口后所有的方法都被重写了
    * 不再需要共享
    public abstract static void c(); */

     
    }
    //接口可以继承接口
    interface two extends oneintface{
     
     
    }
    //接口之间可以多继承
    interface three extends two,oneintface{   
        public void threea();
    }
    //普通的类实现接口必须重写其中的抽象方法
    class c implements three{
     
        @Override
        public void a() {
            // TODO Auto-generated method stub
     
        }
     
        @Override
        public void b() {
            // TODO Auto-generated method stub
     
        }
     
        @Override
        public void threea() {
            // TODO Auto-generated method stub
     
        }
     
    }
    //抽象类实现接口可以不重写
    abstract class d implements three{
     
    }
  • 相关阅读:
    Centos7 下 PHP 添加缺少的组件 sockets 和 openssl
    vue使用 video.js动态切换视频源视频源不刷新问题
    vue+js清除定时器
    获取ip地址,并根据ip获取当前省份
    html页面引用video.js播放m3u8格式视频
    uniapp每隔几秒执行一下网络请求(h5端亲测可以,其他端未测试)
    关于uniapp获取当前距离屏幕顶部的距离
    按值传递与按值引用详解(java版)
    JavaScript的深入理解(1)
    vue-cli3配置webpack-bundle-analyzer插件
  • 原文地址:https://www.cnblogs.com/foreverstudent/p/3308850.html
Copyright © 2011-2022 走看看