Java基础——接口和抽象类

接口(interface)

什么是接口?

接口时抽象方法的合集。接口不可以被直接被实例化。

为什么要使用接口?

  1. 为了扩展。Java不支持多继承,但是通过接口就可以实现“多继承”
  2. 制定规则。接口就是规则,规定了一个类必须有哪些方法。领导制定规则,底下的程序员只需实现接口就制定需要有哪些方法了。

接口使用的注意事项?

  1. 接口属性默为public static fianl
  2. 接口方法默认为public abstract
  3. 接口中中静态方法必须要有方法体
  4. 接口不能直接被实例化(必须实现方法)

  

接口被实现以后可以被实例化


1 public interface Interface02 { 2 void method2_1(); 3 } 4 5 6 Interface02 interface02 = new Interface02() { 7 @Override 8 public void method2_1() { 9 10 } 11 }; 12interface02.method2_1();

什么是抽象类?

 抽象类:类中没有包含足够信息来描述一个具体对象。

抽象和普通类一样具有成员变量,成员方法,构造方法等。

为什么要使用抽象类?

使用抽象类可以定义一个不确定的某些具体方法内容的类。

抽象类的使用注意事项?

  1. abstract可以修饰类和方法
    1. 被abstract修饰的类为抽象类。
    2. 被abstract修饰的方法为抽象方法。 
  2. 抽象类中没有抽象方法依然是抽象类,还是不能被直接实例化需要被继承,然后通过子类实例化
  3. 抽象类中既可以有抽象方法也可以有非抽象方法。
     1 public abstract class AbstractClass02 {
     2     void method2_1(){
     3 
     4     }
     5     void method2_2(){
     6 
     7     }
     8     void method2_3(){
     9 
    10     }
    11     
    12 
    
    
  4. abstract不能和private、final、static连用。可以和protected连用。

  5. 接口必须实现接口中所有的方法

 1 public abstract class AbstractClass02 {
 2     void method2_1(){
 3 
 4     }
 5     void method2_2(){
 6 
 7     }
 8     void method2_3(){
 9 
10     }
11     abstract void method2_4();
12 
13 }
14 
15 abstract class Test03 extends AbstractClass02{
16 
17 }

接口与抽象类的相同点和区别?

相同点:

  1. 都是抽象的,不能直接实例化。

区别:

  1. 抽象类可以有普通成员变量,接口只能由类变量
  2. 抽象方法可以包含普通带方法体的方法。接口只有静态方法包含方法体。
  3. 接口可以多继承,抽象方法不可以
  4. 实现接口的类必须实现所有方法。抽象类可以不实现所有方法,定义一个新的抽象类就行了。
原文地址:https://www.cnblogs.com/liziweiblog/p/11076095.html