Java初识
**
接口
前言
这个系列是根据B站UP主:刘二大人的“Java编程语言入门”的系列视频,将所讲的内容手打出来的( 类似课堂笔记 ),配合视频食用效果更佳。
PS:萌新第一次写博客,如发现了错误,请帮忙指出,万分感谢!最后,希望大家食用愉快,一起进步!
一、代码简介
共计两个包:
ex1: Main
ex2:Main
二、ex1
Main
代码如下:
package ex1;
//对一个抽象类来说,如果里面没有字段 且 全是抽象类的方法(字段:非静态//在static里学习)
//我们就把这个抽象类叫做接口
//接口就是一种特殊的类
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Main {
public static void main(String[] args) {
// List list = new ArrayList();//注意:这里List是一个接口(抽象类)
// Collection collection = list;
// Iterable it = collection ;
ClassA a = new ClassA();
a.run();
}
}
interface InterfaceA{
default void run(){
//加上default之后,如果接口里面以后有默认方法,(默认方法可是重复率很高的方法)
//且以后不想覆写,而是直接用默认的方法,就可以加default
//这样的话,提高了代码的可读性
System.out.println("d");
}
}
class ClassA implements InterfaceA{
}
//
//abstract class Foo{
// public abstract void take();
// public abstract void run();
//}
//
//interface Person{
// void take();
// void run();
// //接口中所有的类都是public abstract
// //类的继承在接口里也是通用的
// //Java里不允许类继承自多个类,但可以实现多个接口
//}
//
//interface Person{
// void greeting();
//}
//
class Student implements Person{
@Override
public void greeting() {
System.out.println("s");
}
}
//
//这是实现多个接口:
//interface Student extends Person{
// void run();
//}
//
//class Foobar implements Student{
//
// @Override
// public void greeting() {
// System.out.println();
// }
//
// @Override
// public void run() {
//
// }
//}
/*
* 父类 Object
* 子类 Abstrast Collection(抽象集合)----->实现Cllection接口---->继承自Iterable接口
* 子类 Abstract List(抽象列表)----->实现List接口----->继承自Cllection接口
* 两个派生类 ArrayList LinkedList(用数组/链表实现列表)
* ArrayList是无序的,没有索引的
* LinkedList是有序的,可以用索引来访问其中的元素
* */
二、ex2
Main
代码如下:
package ex2;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Student[] students = new Student[]{
new Student("Mike"),
new Student("Jack"),
new Student("Clark")
};
Arrays.sort(students);
System.out.println(Arrays.toString(students));
}
}
class Student implements Comparable{
private String name;
public Student(String name){
this.name = name;
}
@Override
public int compareTo(Object o) {
Student s = (Student) o;
return this.name.compareTo(s.name);
}
@Override
public String toString() {
return this.name;
}
}
总结
求知是有代价的,你的痛苦铺就了追求至高理想的路。