Day58 抽象类

抽象类

通过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
    }
}
posted @ 2024-01-25 15:05  白小帆  阅读(14)  评论(0)    收藏  举报