• (java补充)抽象类和接口


    java中抽象类和接口的区别
    1、什么是抽象类
    抽象修饰类的时候表示是一个抽象类,这个类不能实例化;
    如果一个类中有抽象方法,那么这个类一定是一个抽象类;
    如果一个抽象类可不可以没有抽象方法?可以的;
    抽象类出现的目的就是为了继承;
    抽象类一般用在哪里?一个抽象类一般作为工具类;
    抽象类中的抽象方法目的就是为了覆盖;
    抽象的方法,不能使用private修饰;
    抽象类包括抽象方法和非抽象方法。
    如果父类是一个抽象类,当子类继承父类的时候,要实现抽象的方法,如果不实现的话,那么子类就必须是一个抽象的类。

    抽象类(abstract class)的定义方式如下:
    public abstract class AbstractClass //里面至少有一个抽象方法
    {
      public int t; //普通数据成员
       public abstract void method1(); //抽象方法,抽象类的子类在类中必须实现抽象类中的抽象方法
      public abstract void method2();
      public void method3(); //非抽象方法
      public int method4();
      publi int method4 (){
      …… //抽象类中可以赋予非抽象方法方法的默认行为,即方法的具体实现
      }

    public void method3(){
      …… //抽象类中可以赋予非抽象方法方法的默认行为,即方法的具体实现
      }

    }
    2、什么是接口
    接口是多态的一种形式
    接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法,这样很方便。这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同。
    我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了。

    接口(interface)的定义方式如下:
    public interface Interface
    {
      static final int i; //接口中不能有普通数据成员,只能够有静态的不能被修改的数据成员,static表示全局,final表示不可修改,可以不用static final 修饰,会隐式的声明为static和final
      

       public void method1(); //接口中的方法一定是抽象方法,所以不用abstract修饰
      

      public void method2(); //接口中不能赋予方法的默认行为,即不能有方法的具体实现
    }

      



  • 相关阅读:
    RSS 2.0 Specification
    [导入]VS2005 SP1 Installation failed
    Python接口自动化测试
    一列保存多个ID(将多个用逗号、特殊符号 隔开的ID转换成用逗号隔开的名称)
    实现div垂直居中的CSS代码
    SQL Server 触发器
    GDT(Global Descriptor Table)全局描述符表
    linux中用vim+ctags+cscope+taglist查看源代码
    Linux中配置bochs
    SQL Server复习 2013.12.16
  • 原文地址:https://www.cnblogs.com/zhujianxipan/p/3146879.html
Copyright © 2020-2023  润新知