Java基础之接口和抽象类

在java中提供了两种方法来实现OOP的抽象,抽象类和接口。
很多时候我们需要在接口和抽象类中做出选择。

一. 接口

  1. 接口的理解:我觉得接口就是一个特殊的类,它主要是为了解决java不可以实现多继承的特性,在开发过程中接口更多的是用在标准的定义。而且接口中的方法都是没有方法体的,都是一些抽象方法。
  2. 接口的要求:
    1、接口中的属性默认为public static final类型的。
    2、接口中的方法默认为public abstract类型的。
    3、接口类只能用public修饰。
    4、接口没有构造方法,也不可以实例化。
    5、接口可以继承一个或者多个接口,但是不可以继承类。
    6、实现接口需要实现接口中的所有方法。
  3. Java中接口代码代码示例
public interface InterfaceTest {

    public static final String URL = "localhost:8080";

     void Test();
    
     public abstract int Show();

}

二. 抽象类

  1. 抽象类的理解:
    1、抽象类和类一样,都是可以用来继承的
    2、类可以有的成分,抽象类都可以拥有【包括构造方法、static静态修饰成分等】
  2. 抽象类的条件:
    1. 抽象类是用abstract来修饰
    2. 抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类
    3. 抽象类不可以被实例化。
    4. 抽象类可以有构造器。
    5. 抽象类中方法理论上可以使用任何修饰符
    6. 抽象类中可以包含static方法
    7. 抽象类可以implements接口,并且完全可以不实现接口的方法,因为抽象本身就是允许抽象方法的!抽象类,也可以继承抽象类,并且也可以不实现所继承父类的抽象方法,而交由下层的具体实现类实现。
  3. 抽象类代码示例
public abstract class AbstrcTest  {

   public int flag = 1;

   public AbstrcTest(){
       System.out.println("构造方法");
   }
   
   public static void test(){
       System.out.println("static method test");
   }

   public void print(){
       System.out.println(" 普通 方法");
   }

   public abstract void aMethod();

}

三.Java8中的新特性
1.在接口中可以添加使用default关键字修饰的非抽象方法.
2.接口中可以声明静态方法,并且可以实现

public interface InterfaceTest {

    default void df(){
        System.out.println("可以实现default方法");
        st();
    }

    static void st(){
        System.out.println("可以实现static方法");
    }

}


public class Testss implements InterfaceTest{


    public static void main(String args[]){
        Testss testss = new Testss();
        testss.df();
    }
}

接口的默认方法可以调用静态方法;
然后实现接口的字类也可以通多实例化对象来调用默认方法。

发布了34 篇原创文章 · 获赞 15 · 访问量 3229

猜你喜欢

转载自blog.csdn.net/weixin_43404016/article/details/104855085