0
点赞
收藏
分享

微信扫一扫

第十六章 JavaSE专题之面向对象高级三 - 抽象类详述

Java架构领域 2022-02-10 阅读 36

1、抽象类概述

  • 当父类的方法不能确定时,可以用abstract关键字来修饰该方法;
    • ①用abstract来修饰该类就是抽象类,用abstract来修饰该方法就是抽象方法;
    • 抽象类不能被实例化
    • ③一旦类包含了abstract方法,则这个类必须声明为abstract;
    • ④抽象类不一定要包含abstract方法,也就是说抽象类可以没有abstract方法;
    • abstract只能修饰类和方法,不能修饰属性和其他的
//eat:这里eat这里实现类,其实没什么意义;
//即:父类方法不确定性的问题;
//===》 考虑将该方法设计为抽象(abstract)方法;
//===》 所谓抽象方法就是没有实现的方法;
//===》 所谓没有实现就是指没有方法体;
//===》 当一个类中存在抽象方法时,需要将该类声明为abstract类;
//===》 一般来说,抽象类会被继承,有其子类来实现抽象方法;
  • 范例
//1、创建抽象类 Eate
abstract class Eate {
    String name;
    int age;
    public static String school = "小学";

    //1、抽象方法定义
    abstract public void cry();

    //2、abstract只能修饰类和方法,不能修饰属性和其他的
    public void run(){
        System.out.println("正在跑...");
    }
    //3、静态方法
    public static void eat(){
        System.out.println("正在吃...");
    }
    //4、抽象方法定义
    abstract void fee();
    //5、静态代码块
    static {
        System.out.println("打印静态代码块!!!");
    }
    //6、普通代码块
    {
        System.out.println("打印普通代码块!!!");
    }
}

//2、创建子类 Son继承Eate类
public class Son extends Eate{
    public Son() {
    }

    @Override
    //1、第一个抽象方法实现
    public void cry() {
        System.out.println("第一个抽象方法...");
    }
    //2、第二个抽象方法实现
    public void fee(){
        System.out.println("第二个抽象方法...");
    }
}

//3、使用main方法实现子类
public class Abstrat {
    public static void main(String[] args) {
        Son son = new Son();
        Son.eat();
        System.out.println(Son.school);
    }
}
  • 运行结果

在这里插入图片描述

2、抽象类&抽象方法

(1)用abstract关键字来修饰一个类时,这个类就叫抽象类

访问修饰符 abstract 类名{}

(2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法

访问修饰符 abstract 返回类型 方法名(参数列表);  //没有方法体

(3)抽象类的价值更多作用在于设计,是设计者设计好后,让子类继承并实现抽象类

(4)抽象类,考官比较爱问的知识点,在框架和设计模式使用比较多

3、抽象类注意事项

(1)抽象类不能被实例化

(2)抽象类不一定要包含absttract方法,也就是说抽象类可以没有abstract方法

(3)一旦类包含了abstract方法,则这个必须声明为abstract

(4)abstract只能修饰类和方法,不能修饰属性和其他的;

(5)抽象类可以有任意成员【抽象类本质还是类】,比如:非抽象方法、构造器、静态属性

(6)抽象方法不能有主体,即不能实现;

(7)如果一个子类继承了抽象类,则他必须实现抽象类的所有抽象方法,除非他自己也声明为abstract类;

(8)抽象方法不能使用private,final和static来修饰,因为这些关键字都和重写相违背的;

举报

相关推荐

0 条评论