• Java学习心得之抽象类和接口


    为了让自己更好的理解,写了如下代码来总结:

    1、接口定义,可以看出来接口中可以定义常量,也可以定义方法,但是接口中方法不能有方法体,必须是一个抽象的方法,仅仅是一个方法的声明

    1 /**
    2  * 与InTest 一起测试接口与类
    3  */
    4 public interface InterTest {
    5      int a=10;
    6      public void sysout();
    7      abstract public void sysin();
    8      String sysout1();
    9 }


    2、抽象类的定义:在抽象类中,方法可以被abstract修饰也可以不被修饰,但是不是抽象方法必须要有方法体,而且抽象类中也可以有main方法,其中可以看出来main方法也是可以被重载的,只要其中的形参不同

     1 /**
     2  * 与InTest 一起测试抽象类和普通类
     3  */
     4 public abstract class AbsClass {
     5     public void aa() {
     6         System.out.println("不是抽象方法必须要有方法体");
     7     }
     8     abstract public void a(String str);
     9     public static void main(String[] args){
    10         System.out.println("args[0]是输入的值"+args[0]+"  "+args[1]);
    11         System.out.println("抽象类父类的main方法");
    12     }
    13     public static void main(int a){
    14         System.out.println("a的值是"+a);
    15     }
    16 }

    3、类的定义:这个类实现了上边的接口,继承了抽象类。

    • 实现接口:可以看出来必须是重写所有的接口中定义的方法,可以这样来理解,接口中知识约定了一种规范,说明了一种功能,但是这种功能方法具体怎样来做,还是交给实现接口的类来做,这样也增加了程序的灵活性,同时也有了一定的约束
    • 继承类:在继承的类中,父类中的方法可以不比全部重写,但是抽象方法必须重写,同时也可以在子类中实现父类的main方法。
     1 public class InTest extends AbsClass implements InterTest{
     2     /**
     3      * 接口的方法必须被重写
     4      */
     5     public void sysout() {
     6     }
     7     public void sysin() {
     8     }
     9     public String sysout1() {
    10         return null;
    11     }
    12 
    13     /**
    14      * 抽象方法必须被重写
    15      */
    16     public void a(String a) {
    17     }
    18     
    19     /**
    20      *也可以重载父类的方法,不管是不是抽象的 
    21      */
    22     public void a(){};
    23     public static void main(String args[]){
    24         System.out.println("子类的main方法");
    25         String a[]={"ab","bb"};        //定义字符串数组
    26         AbsClass.main(a);            //实现了抽象类的main方法
    27         AbsClass.main(4);
    28     }
    29 }
  • 相关阅读:
    可自主二次开发的微信云控客服crm系统软件(带源码)
    个人微信号二次开发sdk协议,微信个人号开发API接口
    最新的微信SCRM客服系统
    微信个人号客服系统淘宝客发单机器人sdk服务端接口列表
    sdk定制开发微信群控云控客服系统教程
    web版微信自动发消息(实现微信个人号机器人)
    Adobe Audition 基本使用
    MPEG-7 视觉描述符
    图像检索:几种基于纹理特征的图像检索算法
    div+css基础教程
  • 原文地址:https://www.cnblogs.com/Lowp/p/2681303.html
Copyright © 2020-2023  润新知