zoukankan      html  css  js  c++  java
  • java中抽象类跟接口的区别和总结

    interface:
    首先是申明一个接口,关键字:interface,语法:
    public interface InterfaceDemo
    {
    ....
    }
    在主体内部可以定义一些常量和接口的申明!例如:
    public interface InterfaceDemo
    {
    public static int a=14;

    public void run(int x);
    }
    需要注意一点:接口中申明的所有方法必须是public或者是默认类型!
    而且只要申明,不要去实现它!

    如果要使用这个接口,那就要写一个类去实现它,关键字:implements

    public class zi implements InterfaceDemo{
    .......
    }

    注意:要去实现一个接口的时候,必须去实现接口中定义的所有方法,除非你的类申明为abstract(是一个抽象类)!

    一个类可以实现多个接口,语法就是在要实现的接口之间用","隔开!
    public class zi implements InterfaceDemo1,InterfaceDemo2,....
    {
    ....
    }

    abstract:
    abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),
    表示其为抽象成员,abstract 不可以和 static 、virtual 一起使用. 声明为 abstract 成员可以不包括实现代码,
    但只要类中还有未实现的抽象成员(抽象方法),那么这个类就是一个抽象类,抽象类的对象就不能被实例化,
    通常用于强制继承类必须实现某一成员.抽象类是必须要派生子类的。并且,如果子类没有实现抽象基类的所有方法,
    则子类也成为一个抽象类。

    public abstract class AbstractClass

    public void test1(){}// 一个正常的方法 
    public abstract void test2(); // 一个抽象方法。 

    如果JAVA类的任何一个方法是abstract的,则类本身必须是abstract的。

    抽象类和接口:
    1, 抽象类和接口都代表系统的抽象层;
    2, 抽象类和接口都不能被实例化,但都可以继承或者实现抽象类或者接口的具体类,通过定义引用变量来构造;
    3, 抽象类和接口都包含抽象方法;
    4, 抽象类中可以为部分方法提供默认的实现,可以避免子类中重复实现它们,提高代码的可重用性,接口中只能包含抽象方法;
    5, 一个类只能继承一个直接的父类,比如抽象类,但是可以实现多个接口。
    6,接口可以对外公开,这样就不会破坏面向对象编程的封装性;
    7,抽象类是父类的扩展,也就是说当别人定义了一个抽象类里面方法你可以重写覆盖,重载。
    区别:
    1、抽象类只能被单继承、接口可以被多实现,避免了单继承的局限性。
    2、抽象类中可以定义抽象方法,和非抽象方法,它可以用于定义体系的基本共性的内容。接口中只能定义抽象方法,它主要用于对象的功能的扩展。
    3、抽象类是继承关系,是is a关系,接口是实现关系是like a关系。
    4、抽象类中的成员修饰符都是自定义的,接口中的修饰符都是固定的。
    希望对你有所帮!!!

  • 相关阅读:
    焦虑:都说程序员是青春饭,那么程序员老了何去何从呢?
    数据库查询语句优化,mysql优化,join语句优化附带YYC松鼠短视频系统详细demo效果
    IT行业:为什么大部分人都不认可php语言呢?
    拇指赚点赞无加密源码发布分享仅供学习
    区块鼠区块养殖系统源码无加密源码发布分享仅供学习
    3月1日晚突遭大量攻击,网站/APP突然遭遇黑客攻击时该如何应对?
    ThinkPHP内核全行业小程序运营管理系统源码免费分享下载
    2020年不管打工还是创业,居然还有人相信读书无用论?
    在IT界,应聘企业去上班如果老板一点不懂技术那绝对是作茧自缚
    看了这篇文章你还不懂傅里叶变换,那我就真没办法呢!
  • 原文地址:https://www.cnblogs.com/yejiurui/p/2831733.html
Copyright © 2011-2022 走看看