
正文
Java 抽象类的简单使用
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
自己做的一点笔记...
抽象类:使用关键词 abstract 进行修饰,抽象类不能生成对象(实例化),且含有抽象方法(使用 abstract 进行声明,并且没有方法体)。
特点:
1️⃣ 抽象类不一定有抽象方法,但是有 abstract 修饰的方法,则其必须是抽象类;
2️⃣ 子类如果继承了抽象类,则必须重写抽象类中的方法;
3️⃣ 抽象类不能定义为 private 因为,它需要通过继承,才能有意义(子类不能修改 private 修饰的类的成员);
4️⃣ 如果子类继承了抽象类,但是没有实现父类的抽象方法,则子类也必须定义为抽象类。
作用:抽象类,给事物进行抽象,如果一些某些事物拥有同样的行为,就可以通过抽象类来统一进行规范,例如通过定义泛型的抽象类:
package leetcode.abstructs;import java.util.List;/**
* @todo 抽象类的应用测试
* @since 9:44 2019/1/29
* @author hanyf
*/
public abstract class MyAbstract<T> {
private List<T> list; public MyAbstract() {
} public MyAbstract(List<T> list) {
this.list = list;
} public void method(){
for (T t : list){
doLoop(t);
}
} /**
* @todo 抽象方法,在实例化调用该类的此抽象方法,并且可以对它进行重写
* @since 9:51 2019/1/29
* @author hanyf
* @params
* @return
*/
public abstract void doLoop(T t);
}
抽象类
package leetcode.test;import leetcode.abstructs.MyAbstract;import java.util.ArrayList;
import java.util.List;public class 抽象方法{
public static void main(String[] args) {
List<String> list = new ArrayList<>();
int i = 20;
while (i>0){
list.add("I'm String for "+ i);
i--;
} //抽象类的实现
//重写了抽象类方法实现
new MyAbstract<String>(list){
@Override
public void doLoop(String s) {
System.out.println(s);
}
}.method();
}
}
main方法






