java接口

接口所有的方法都是抽象方法:所以在声明方法时,关键词abstract写不写都没有任何关系了。

接口的定义关键词是interface,抽象类是class。抽象类是用来继承大的,接口是用来实(implements)的。

匿名内部类

为什么要使用匿名内部类

先看看如果不使用匿名内部类的情形:

  • 定义接口Shape(如果已经有则跳过)

public interface Shape {
    public String getName();
    public double area();
    public double perimeter();
}

  • 实现接口实现类Square

public class Square implements Shape {
    public double d;

    public Square(double d) {
        this.d = d;
    }

    @Override
    public String getName() {
        return "正方形";
    }

    @Override
    public double area() {
        return d*d;
    }

    @Override
    public double perimeter() {
        return d*4;
    }
}

  • 定义Square类的对象并且去使用它

public class Test {
    public static void main(String[] args){
        Square square = new Square(5);

        Shape shape = square;
        print(shape);

        Circular circular = new Circular(6);
        Shape shape1 = circular;
        print(shape1);

    }
    public static void print(Shape shape){
        System.out.println(shape.getName()+"的周长是"+shape.perimeter()+"\n面积是"+shape.area());
    }
}

 

那么如果使用匿名内部类呢?

(1)定义接口(与上一种情形一样)

(2)定义匿名内部类,并实现接口(实际上就是一种情形的第二三步骤合并了)。

 

匿名内部类显然简化了这个流程。但是也使得使用者理解更困难了,代码层次不是太清晰。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值