Java抽象类和接口的区别

java抽象类:

  • 1,抽象类中应至少有一个抽象方法(只有定义没有实现,且用abstract标记)。
  • 2,抽象类中可以有具体方法。
  • 3,抽象类不可实例化。
  • 4,抽象类的子类如果有未实现的方法,则要标记未抽象类。
  • 5,抽象类可以创建一个抽象类的变量,只能引用非抽象子类的对象。

接口

  • 1,接口绝不会有实例字段,可以定义常量,且总是被(public static final)进行修饰。

  • 2,接口中所有方法自动是Public方法。(在定义接口时,可以不用写明public)。

  • 3,使用instanceof可以检查一个对象是否实现了某个特定接口。

    if(子类 instanceof 接口名){}
    
  • 4,接口中可以有静态方法,java9之后接口可以有私方法,这些方法有实例方法或者是静态方法,这些方法只能在接口中调用,使用非常有限。

  • 5,接口可以提供一个默认方法,使用default修饰标记该方法。

    public interface Comparable<T>
    {
    	default int compareTo(T other){
            return 0;
        }
    }
    
  • 6,当超类和接口中的方法冲突时,只会考虑超类中的方法,(类优先原则)。

posted @ 2022-11-29 10:15  没尾巴的刺刺鱼  阅读(47)  评论(0编辑  收藏  举报