美文网首页
接口和抽象类的区别

接口和抽象类的区别

作者: 7i昂 | 来源:发表于2019-10-15 22:09 被阅读0次

抽象类

package Abstract;

public abstract class AbstractClass {
    //抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法
    public abstract void abstractMethod();
    //抽象方法不能private static final修饰
    //private abstract void eat();
    //抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
    //抽象类可以有普通方法也可以有static方法
    private static void normalMethod(){

    }
    //可以普通属性和常量
    private String s;
    private static int i;
    private static final int p=100;
    //可以有构造方法
    public AbstractClass(){

    }
    //可以有静态代码块
    static{

    }
    {

    }
    //普通类该有的功能抽象类都有唯一区别就是不能实例化,抽象方法。
}

------------------------------------------------------------------------------------------------------------------------------------------------
package Abstract;

public interface InterfaceClass {
    public abstract void iterfaceMethod();
}

------------------------------------------------------------------------------------------------------------------------------------------------
package Abstract;
//抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们
public abstract class ChildAbstractClass extends AbstractClass implements InterfaceClass{

}

------------------------------------------------------------------------------------------------------------------------------------------------
package Abstract;

public class Child extends ChildAbstractClass {
    //具体派生类必须覆盖基类的抽象方法
    @Override
    public void abstractMethod() {

    }


    @Override
    public void iterfaceMethod() {

    }
}
------------------------------------------------------------------------------------------------------------------------------------------------
package Abstract;

public class Test {
    public static void main(String[] args) {
        //抽象类不能被实例化
        //AbstractClass p= new AbstractClass();
    }
}

接口

package Interface;

public interface IterfaceClass {

    //接口只能包含方法声明(也可以不写abstract编译的时候默认加上)
    public abstract void abstractMethod();
    //抽象方法不能private static final修饰
    //private abstract void eat();
    //可以有普通方法和静态方法
    public static void normalMethod(){

    }
    //可以有普通属性和静态属性和常量但是必须public其它都不可以,必须初始化
    public String s="";
    public static int i=0;
    public static final int p=100;

    //不可以有构造方法
    //public AbstractClass(){
    //}

    //不可以有静态代码块
    //static{
    //}
    //{
    //}

}
------------------------------------------------------------------------------------------------------------------------------------------------
package Interface;

public class Child implements IterfaceClass {


    @Override
    public void abstractMethod() {

    }
}
------------------------------------------------------------------------------------------------------------------------------------------------
package Interface;

public class Test {
    public static void main(String[] args) {
        //接口不能被实例化
        //IterfaceClass p=new IterfaceClass();
        System.out.println(""+ IterfaceClass.p);
        IterfaceClass p=new Child();

    }
}

相关文章

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • 抽象类和接口的区别

    以下两篇文章介绍了接口和抽象类的概念接口概念抽象类概念 抽象类和接口的区别: 抽象类:需要使用abstract关键...

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • Java基础 (7) 抽象类和接口

    抽象特性的具体体现方式。1)抽象类区别和接口的区别2)抽象类的意义3)抽象类与接口的应用场景4)抽象类是否可以没有...

  • Java--接口和抽象类

    ·为什么需要接口?接口和抽象类的区别?  接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束...

  • 浅谈抽象类和接口的区别

    最近我看了一些接口和抽象类的区别,在这里我将我的所总结的内容分享给大家。 抽象类和接口的区别 1.抽象类使用abs...

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

  • Kotlin 零基础学习 接口和抽象类

    接口:接口就是暴露一种物体与另外一种物体沟通的方法 抽象类 接口 这么看接口和抽象类没什么区别,抽象类能干的接口也...

  • 抽象类和接口区别

    区别 接口 抽象类

网友评论

      本文标题:接口和抽象类的区别

      本文链接:https://www.haomeiwen.com/subject/nouemctx.html