JAVA面试11-抽象类和接口

抽象类和接口
不可以new
多态思想

抽象类

abstract  class Abs{
      public abstract  void add();

}
 public abstract void add();
    descriptor: ()V
    flags: ACC_PUBLIC, ACC_ABSTRACT

继承抽象类要重写抽象的父类方法

接口

interface  Inter{
   
}
{
}

成员变量

interface  Inter{
   int a=1;
}
{
  public static final int a;
    descriptor: I
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: int 2
}

成员方法

interface  Inter{
    void m();
}
{
  public abstract void m();
    descriptor: ()V
    flags: ACC_PUBLIC, ACC_ABSTRACT
}

新增default和static方法

interface  Inter{
   static void printS()  //接口方法
   {
       System.out.println("S");
   }
   default  void printD() //实例方法 
    {
        System.out.println("D");
    }
  }
{
  public static void printS();
    descriptor: ()V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: getstatic     #1                  // Field java/lang/System.out:Ljava/io/PrintStream;
         3: ldc           #2                  // String S
         5: invokevirtual #3                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
         8: return
      LineNumberTable:
        line 12: 0
        line 13: 8

  public void printD();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
         0: getstatic     #1                  // Field java/lang/System.out:Ljava/io/PrintStream;
         3: ldc           #4                  // String D
         5: invokevirtual #3                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
         8: return
      LineNumberTable:
        line 16: 0
        line 17: 8
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       9     0  this   Lcom/ms/Inter;
}

接口中的static 变量会继承到子类中

public class T16 {
    public static void main(String[] args) {
    Iimp iimp=new Iimp();
        System.out.println(iimp.a); 2
    } 
}
interface  Inter{
    int a=2;
}
class Iimp implements  Inter{

}

public class T17 {
    public static void main(String[] args) {
        System.out.println(IAnimal.animalName==AnimalImp.animalName);false
    }
}
interface  IAnimal{
    String animalName="A";
}
class AnimalImp implements  IAnimal{
    static  String animalName=new String("A");
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值