抽象类
通过abstract修饰符来修饰类 就叫抽象类
通过abstract修饰符来修饰方法 就叫抽象方法
Action.java 及笔记!
package com.oop.demo10;
//在一个类前面加上 abstract 就变成了抽象类:类 extends: 单继承~ (接口可以多继承)
public abstract class Action {
//约束~有人帮我们实现~ 就写了前面的框架 不写方法后面的{ }
//abstract,抽象方法,只有方法名字,没有方法的实现!
public abstract void doSomething(); //加了abstract是抽象方法 那类也必须是抽象类 有abstract
public void saySomething(){ //抽象类里面也可以放 普通方法
}
//抽象类的特点:
//1.不能new这个抽象类,只能靠子类去实现它:约束, 继承抽象类的子类还必须重写方法
//2.抽象类中可以写普通的方法~
//3.抽象方法却必须在抽象类中~(一旦类里面有抽象方法 类也必须改成抽象类)
//抽象的抽象:约束~
//思考题? 抽象类既然不能new,那还存在构造器么? 点击out目录下的class文件 可得抽象类也是有构造器的
//存在的意义 抽象出来~ 提高开发效率
}
Action.class
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.oop.demo10;
public abstract class Action {
public Action() {//无参构造
}
public abstract void doSomething();
public void saySomething() {
}
}
A.java
package com.oop.demo10;
//抽象类的所有方法,继承了它的子类,都必须要实现它的方法~ 除非子类也加了abstract也是抽象类~
public class A extends Action{ //如果不重写父类的抽象方法 这里写extends会报错
@Override
public void doSomething() { //重写不能加abstract 不然也会变抽象方法 类也要改成抽象类
}
}
Application.java
package com.oop.demo10;
public class Application {
public static void main(String[] args) {
//new Action(); //报错了 抽象类无法被new
}
}
标签:abstract,public,Day58,Action,抽象类,方法,class
From: https://www.cnblogs.com/baixiaofan/p/17987201