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

    自己总结的抽象类和接口的异同点。

    相同点:

    1.都是抽象概念的产物;

    2.都需要被继承或实现才能发挥他们的功能;

    3. 抽象类和接口都不能被实例化,不能调用new关键字创建实例。

    不同点:

    1. 抽象类必须要用abstract修饰,定义接口要用interface关键字;

    2. 抽象类可以包含抽象方法,也可以包含普通方法;

    3. 抽象类里可以定义非静态变量,静态变量,接口里所有定义的变量都默认是public static final修饰;

    4. 抽象方法必须显示地定义成 public abstract, 接口中的方法默认就是public abstract,也可显示定义;

    5. 抽象类可以包含Field,方法(普通方法和抽象方法)、构造器、初始化块、内部类、枚举类6种成分。接口里可以有Field,方法,内部类,枚举。

    6. 抽象类只能单继承,接口支持多继承。

    7. 抽象类可以有构造函数,用来被子类调用,不能用来创建实例。接口是没有构造函数的。

    注意:

      1)abstract和final不能同时修饰方法;

      2)abstract和static不能同时修饰方法;

      3)abstract和private不能同时修饰方法

     抽象类Code:

    public abstract class Example_abs {
        private int a;
        public static String bString;
        public abstract void fn();
        public void fn2(){}
        {
            
        }
        static{
            
        }
        public Example_abs() {
    
        }
        public class aaa{
            
        }
        public static class bbb{
            
        }
        public static interface ccc{
            
        }
        public enum EE{
            ONE,TWO;
        }
    }

     接口Code:

    public interface Example_inf {
        int aa=100;
        public static final int bb=7;
        void f();
        public abstract void f2();
        public class aaa{
            
        }
        public static class bbb{
            
        }
        public static interface ccc{
            
        }
        public enum EE{
            ONE,TWO;
        }
    }
  • 相关阅读:
    layUI table.reload 刷新表格
    js实现 StringBuilder
    sqlServer 重复数据项处理,只选其中一条,保留一条
    在唯一密钥属性“name”设置为“XXX”时,无法添加类型为“add”的重复集合项
    sqlserver 把 某一列的所有值 变成 in 里面的内容
    初识第三方登录
    卸载vsto插件的方法
    layui-框架学习小总结
    c# 记一次批量获取自己的qq好友的CF游戏战绩
    得到qq正在登录的qq的号
  • 原文地址:https://www.cnblogs.com/wxlovewx/p/5226884.html
Copyright © 2011-2022 走看看