java基础_抽象类和接口
1 抽象类和抽象方法
抽象方法: 只有功能声明,没有功能主体实现的方法。
抽象类:包含抽象方法的类叫做抽象类,如果一个类包含一个或多个抽象方法,该类必须被限定为抽象类。
// 抽象方法定义格式
public abstract 返回值类型 方法名(参数);
// 抽象类定义格式
public abstract class 类名{
// ...
}
如果A类继承抽象类,那么A类必须为抽象类中所有抽象方法提供方法定义,即重写抽象方法。如果不重写,那么A类也必须声明为抽象类。创建抽象类的目的是通过这个通用接口操纵一系列类。
注:抽象类无法直接创建对象,只能被子类继承后,创建子类对象。
2 接口
接口:是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。即接口是一种特殊的抽象类,里面全部是全局常量和公共的抽象方法组成。
接口没有具体实现,可以实现多重继承。将一个具体类和多个接口组合到一起时,具体类必须放到前面,后面才跟着接口。
当类要实现一个接口时,重写的接口方法必须定义为public。
放入接口中的任何域都自动是static和final的
interface Test{
// public,static and final
int a = 1;
// public and abstract
void display();
}
class HelloWrold implements Test{
@Override
public void display(){
System.out.println("Hello world!");
}
}
3 接口与设计模式
3.1 策略模式
策略模式:创建一个能够根据所传递的参数对象的不同而具有不同行为的方法。策略就是传递进去的参数对象,它包含要执行的代码,下面代码就是一个策略模式的实现。
//: interfaces/classprocessor/Apply.java
package interfaces.classprocessor;
import java.util.*;
import static net.mindview.util.Print.*;
class Processor {
public String name() {
return getClass().getSimpleName();
}
Object process(Object input) { return input; }
}
class Upcase extends Processor {
String process(Object input) { // Covariant return
return ((String)input).toUpperCase();
}
}
class Downcase extends Processor {
String process(Object input) {
return ((String)input).toLowerCase();
}
}
class Splitter extends Processor {
String process(Object input) {
// The split() argument divides a String into pieces:
return Arrays.toString(((String)input).split(" "));
}
}
public class Apply {
public static void process(Processor p, Object s) {
print("Using Processor " + p.name());
print(p.process(s));
}
public static String s ="Disagreement with beliefs is by definition incorrect";
public static void main(String[] args) {
process(new Upcase(), s);
process(new Downcase(), s);
process(new Splitter(), s);
}
} /* Output:
Using Processor Upcase
DISAGREEMENT WITH BELIEFS IS BY DEFINITION INCORRECT
Using Processor Downcase
disagreement with beliefs is by definition incorrect
Using Processor Splitter
[Disagreement, with, beliefs, is, by, definition, incorrect]
*///:~
3.2 适配器设计模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
可以参考博客:适配器模式 | 菜鸟教程 (runoob.com)
3.3 工厂模式
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
可以参考博客:工厂模式 | 菜鸟教程 (runoob.com)
参考内容:
《Java的编程思想》
JAVA基础——接口(全网最详细教程)_扬俊的小屋-CSDN博客_java接口