零基础学好JAVASE|零基础带你学好JavaSE-抽象类和接口

目录
一.抽象类
二.接口
三.一些重要的接口
1.Comparable
一.compareTo
2.Compartor//作为比较器
一compare方法
运行结果:?编辑


一.抽象类 1.使用abstract修饰的方法,叫做抽象方法。
2.包含抽象方法的类,必须设计为抽象类,使用abstract修饰这个类
3.抽象类是不能够进行实例化的。
4.抽象类中,可以有和普通类一样的方法,成员。最突出的和普通类不一样的地方是,就是抽象类不可以进行实例化
5.抽象类虽然不可以进行实例化,但是可以被继承。
6.当一个普通类继承这个抽象类之后,如果这个抽象类当中包含抽象方法,那么需要重写这个抽象方法,否则代码不能通过编译
7.如果抽象类A继承另一个抽象类B,那么此时这个抽象类A可以不重写B中的抽象方法。
8.抽象方法不能是private,static,final的
二.接口
1.使用interface来定义接口
【零基础学好JAVASE|零基础带你学好JavaSE-抽象类和接口】2.接口当中的成员变量,默认都是public static final来修饰的
3.接口当中的成员方法,默认都是抽象方法public abstract来修饰的
4.接口当中的普通成员的方法,是不能够有具体的实现的
5.接口当中的普通成员方法,如果有具体的实现,必须加上default修饰
6.接口中可以有静态的成员方法,但是不管是静态的方法还是default方法,都是public修饰的
7.接口也是不可以进行实例化的
8.类和接口的关系是使用implements来关联的
9.一个接口可以引用具体实现类的,向上转型
10.接口当中 不能有静态,实例代码块,构造方法
11.一个抽象类实现一个借口,可以不重写这个抽象方法。但是如果有其他非抽象类继承这个抽象类,则要将继承的抽象类以及接口所有的抽象方法都要进行重写。
三.一些重要的接口 1.Comparable 一.compareTo
当一个类重新继承这个接口的时候,可以将compareTO方法重写,此时进行Arrys.sort的排序时,可以进行动态绑定,根据自己重写的compareto方法来进行排序
2.Compartor//作为比较器 一compare方法
比较器是自己自定义敲的,首先比较器要先继承Compareor接口。然后重新compare方法,可以进行单个的引用类型,或者基本类型的比较器进行比较,同时可以用Arrys.sort方法写入的比较器自定义Arry.sort方法的排序规则,具体我们可以根据以下代码来看出

public class Student { String name; int age; String SEx; public Student(String name, int age, String SEx) { this.name = name; this.age = age; this.SEx = SEx; }@Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", SEx='" + SEx + '\'' + '}'; } } //student类 import java.util.Comparator; public class AgeCompare implements Comparator {@Override public int compare(Student o1, Student o2) { return o1.age- o2.age; } } //年龄比较器 import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; import java.util.Arrays; public class Test { public static void main(String[] args){ Student students[]=new Student[3]; students[0]=new Student("大鹏",18,"男"); students[1]=new Student("小鹏",17,"男"); students[2]=new Student("中鹏",16,"男"); System.out.println("----------排序前---------"); System.out.println(students[0]); System.out.println(students[1]); System.out.println(students[2]); System.out.println("----------按照年龄比较器排序后---------"); AgeCompare ageCompare=new AgeCompare(); Arrays.sort(students,ageCompare); System.out.println(students[0]); System.out.println(students[1]); System.out.println(students[2]); System.out.println("--------------单个比较----------"); int temp=ageCompare.compare(students[0],students[1]); //用来比较二者相差多少岁}}


运行结果:零基础学好JAVASE|零基础带你学好JavaSE-抽象类和接口
文章图片




    推荐阅读