抽象类的叙述:

  • 抽象类不可以实例化
  •  
     
    抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了).但是:接口是不能被实例化的(接口压根就没有构造函数)。
     
     

    自己总结的,有遗漏请私我指正,不知道为什么网上都说接口没有Main方法,然而我用IDEA和eclipse是可以的,不知道是不是我理解错了。

    jdk1.8之前

    接口

    1.多实现

    2.变量类型默认且只能为为public static final

    3.函数类型默认且只能为public,只能有public类型的静态成员函数

    4.非静态成员函数没有方法体,静态成员函数有方法体

    5.子类必须实现所有接口函数

    6.可以有main方法;可以new一个接口,需要在方法体中实现所有接口函数

    7.没有构造器

     

    抽象类

    1.单继承

    2.变量类型不限(静态变量+非静态变量)

    3.函数类型不限(静态函数+非静态函数)

    4.非静态函数包含没有方法体的抽象函数. 有方法体的普通函数

    5.子类可以不覆写父类的抽象方法,但子类也要申明为抽象类;子类可以选择覆写父类的非抽象方法

    6.可以有main方法;不可以new一个抽象类

    7.可以有构造器

     

    Jdk1.8

    接口中可以有default类型的方法,实现类可以选择实现该方法

    意义:默认方法的主要优势是提供一种拓展接口的方法,而不破坏现有代码。另一个优势为该方法是可选的,子类可以根据不同的需求Override或默认实现。

     
     
原文地址:https://www.cnblogs.com/zhuyeshen/p/11017789.html