abstract(抽象)基础知识
1.abstract修饰符可以用来修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类。
然后我们去创建一个方法A来继承Action类
我们会发现 出现报错,说这A类必须去重写抽象方法Action。
抽象类和接口很像,但是抽象类本质上还是类,只能单继承,不能多继承。
接口可以多继承。(接口之后会学)
2.抽象类中可以没有抽象方法,抽象方法必须在抽象类中,抽象类中也可以有普通方法。
3.抽象类的特点,不能使用new关键字来创建对象,它是用来让子类实现的。
4子类继承抽象类,那么久必须要实现抽象类的抽象方法,否则该子类也要声明抽象类。
抽象类存在的意义:可以把需要反复创造的东西抽象出来,每次创造时继承这个抽象类,可以提高开发效率。
接口
先来对比下普通类,抽象类,接口的区别
普通类:只有具体实现。
抽象类:具体实现和规范(抽象方法)都有。
接口:只有规范!自己无法写方法。专业的约束!约束和实现分离。
接口定义
接口就是规范,定义的是一组规则,体现了现实生活中“如果你是。。。则必须能。。。”的思想。接口的本质是契约,就像人间的法律一样。制定好了大家都遵守。
面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计,模式都只针对具备了抽象能力的语言(比如c++、java、c#等)、就是因为设计模式所研究的、实际上就是如何合理的去抽象。
声明类的关键字是class、声明接口的关键字是interface。
接下来尝试写一些简单的接口。
接口内部的定义:
接口内部只有定义没有实现方法,我们要实现这增删改查四个功能我们得定义实现类。
实现类的构造:我们创建一个实现类UserviceImpl、在创建一个接口TimeService。
多继承,通过接口来实现。
接口内可以定义一些常量和变量。不过一般不在接口中定义常量变量。
总结、接口的一些作用
1.约束。
2.定义一些方法,让不同的人实现。
3.接口内默认的方法 public abstract。
4.接口内的常量 public static final。
5.接口不能被实例化 因为接口内没有构造方法。
6.可以通过implement 实现多个接口。
7.必须重写接口内的方法。