抽象类和接口(学习笔记)

本文探讨了抽象类和接口在编程中的应用。抽象类用于定义部分实现,留待子类具体化,强调代码复用和设计规范。接口则更注重规范制定,提供未实现的方法供实现类完成,强调多态和解耦。抽象类不能实例化,接口也不能,但一个类可实现多个接口。Java 8后,接口允许默认方法和静态方法。总结来说,抽象类和接口在设计模式中各有价值,前者关注继承,后者关注规范和多态性。
摘要由CSDN通过智能技术生成

抽象类

当父类的一些方法不能确定时,可以用abstract关键字类修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类

抽象类的介绍

        1.用abstract关键字类修饰一个类时,这各类就叫抽象类

访问修饰符 abstract 类名{}

        2.用abstract关键字修饰一个方法时,这个方法就是抽象方法

访问修饰符 abstract 返回类型 方法名(参数列表);//没有方法体

        3.抽象类的价值更多的作用在于设计,设计者设计好的后,让子类继承并实现抽象类


抽象类的使用的注意事项和细节

        1.抽象类不能被实例化

         

        2.抽象类不一定要包含abstract方法,也就是说,抽象类可以没有adstract方法

        3.一旦类包含了abstract方法,则这个类必须声明为abstract

        

        4.abstract只能修饰类和方法,不能修饰属性和其他的

         

        5.抽象类可以有任意成员【抽象类的本质来说类】,比如:非抽象方法、构造器、静态属性

        6.抽象方法不能有主体

        7.如果一个类继承了抽象类,则它必须实现所有的抽象方法,除非它自己也声明为abstract类 

        8.抽象方法不能使用private、final、static来修饰,因为这些关键字都是和重写相违背的


        模板设计模式

                最佳实践

public abstract class Template {
    public abstract void job();
    public void caleTimes(){
        long start=System.currentTimeMillis();
        job();
        long end=System.currentTimeMillis();
        System.out.println("执行时间:"+(end-start));
    }
}
public class AA extends Template{

    @Override
    public void job() {
        for (int i = 0; i < 1000000; i++) {

        }
    }
}
public class BB extends Template{
    @Override
    public void job() {
        for (int i = 0; i < 2000000; i++) {

        }
    }
}
public class Demo {
    public static void main(String[] args) {
        AA aa = new AA();
        aa.caleTimes();
        BB bb = new BB();
        bb.caleTimes();
    }
}

总结:相同调用,不同抽象


接口

接口就是给出一些没有实现的方法,封装到一起,到某个类使用的时候,在根据具体情况把这些方法写出来

interface 接口名{

        //属性

        //方法(抽象方法 默认实现方法 静态方法)

}

class 类名 implements 接口{

        自己属性;

        自己方法;

        必须实现接口的抽象方法

在jdk7.0前 接口里的所有方法都没有方法体,即都是抽象方法

jdk8.0后可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现 


接口注意事项

        1.接口不能被实例化

        2.接口中所有的方法是 public方法,接口中抽象方法,可以不用adstract修饰

        3.一个普通类实现接口,就必须将开接口的所有方法都实现

        4.抽象类实现接口,可以不用实现接口的方法

        5.一个类可以实现多个接口

        6.接口的属性只能是final

        7.接口中属性的访问形式:接口名.属性名 

        8.接口不能继承替他的类,但是游客一定多个看哟

        

         9.接口的修饰符 只能是 public 和默认,这点和类的修饰符是一样的


接口实现和继承

        接口和继承解决的问题不同

        继承的价值主要在于:解决代码的复用性和可维护性

        接口的价值主要在于:设计好各种规范,让其他类去实现这些方法

        接口比继承更加灵活

        继承时满足is - a的关系,而接口只满足like - a的关系

        接口在一定程度上实现代码解耦【接口规范性+动态绑定】


接口的多态特性

        接口存在多态传递特性


小结

        类的五大成员:1.属性 2.方法 3.构造器 4.代码块 5. 内部类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值