- 利用关键字abstract在访问修饰符后面修饰抽象类和抽象方法。
- 包含抽象方法的类一定是抽象类,但抽象类可以不包含抽象方法。
- 抽象类虽然可以声明构造器,但是不能被实例化。
- 继承抽象类的子类只有实现了抽象类的所有抽象方法才能被实例化,否则该类也只能是抽象类。
- 关键字abstract不能修饰属性、构造器、private方法、static方法、final方法、final类。
- 可以利用匿名类临时实现抽象类的抽象方法。
public class AbstractClassAndMethod {
public static void main(String[] args) {
Test.print(new Test1(1) {
@Override
public void print1() {
System.out.println("Test1.print1");
}@Override
public void print2() {
System.out.println("Test1.print2");
}
});
Test.print(new Test2(2) {
@Override
public void print2() {
System.out.println("Test2.print2");
}
});
Test.print(new Test3(3));
}
}class Test {
public static void print(Test1 test1) {
System.out.println(test1.value);
test1.print1();
test1.print2();
}
}abstract class Test1 {
protected int value;
public Test1(int value) {
this.value = https://www.it610.com/article/value;
}protected abstract void print1();
public abstract void print2();
}abstract class Test2 extends Test1 {
public Test2(int value) {
super(value);
}@Override
public void print1() {
System.out.println("Test2.print1");
}
}class Test3 extends Test2 {
public Test3(int value) {
super(value);
}@Override
public void print2() {
System.out.println("Test3.print2");
}
}
【#|√ JavaSE - 12.怎么使用抽象类和抽象方法(卷1 P155)】
文章图片
推荐阅读
- java学习开始|java中的类和对象(3)
- Spring中多线程的使用及问题
- JavaSE|一篇文章带你彻底理解Java中的克隆和拷贝
- JavaSE|println输入和toString方法的重写
- #|k近邻算法实现--Knn
- #|Django models.py 表结构数据更新后应用到数据库中
- java|Spring 事务没生效的几种可能性。 will not be managed by Spring
- spring|spring boot访问接口报500
- nginx|申请CA证书的步骤