zoukankan      html  css  js  c++  java
  • (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(); //接口中不能赋予方法的默认行为,即不能有方法的具体实现
    }

      



  • 相关阅读:
    js解析json数据
    json.stringify
    [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
    在 Windows 中配置Maven:
    jsp引入文件时候经常遇到的${ctx}
    <%%> <%! %> <%=%> <%-- --%> jsp中jstl一些运用
    Spring MVC之@RequestBody, @ResponseBody 详解
    Spring MVC之@RequestMapping 详解
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详
    @RequiresPermissions 解释
  • 原文地址:https://www.cnblogs.com/zhujianxipan/p/3146879.html
Copyright © 2011-2022 走看看