• [02] 抽象类



    1、抽象类的声明

    我们举过例子如Cat类继承Animal类,但是Cat你可以知道是具体什么样,两个尖耳朵,身体柔软娇小,喵喵叫,可是你告诉我,Animal长什么样呢?

    如果一个类中没有包含足够的信息来描绘一个具体的对象,这个类应该使用abstract关键字设置为抽象类。
    【访问权限】 abstract class 类名 { 成员列表 } 

    既然我们说抽象类没有足够的信息去描述具体对象,那么显然,抽象类不能被实例化,只是为了定义子类的共同特征。但是抽象类是可以有构造方法的,这主要是让子类调用。



    2、抽象方法

    抽象类中可以有具体实现的方法,也可以有抽象方法,即仅作定义,而由子类去提供具体实现的方法
    【访问权限】 abstract 返回值类型 方法名称( 参数列表 );

    需要注意的是:
    • 含有抽象方法的类,一定需要定义为抽象类
    • 子类要求必须实现父类的抽象方法
    • 构造方法和静态方法不可以修饰为abstract
    • 抽象类可以有成员属性和非抽象的成员方法



    3、示例

    //抽象类,父类
    public abstract class Animal {
        private String name;
    
        protected Animal(String name) {
            this.name = name;
        }
    
        public abstract String eat();
    
    }
    
    //子类
    public class Cat extends Animal{
    
        private int age;
    
        public Cat(String name, int age) {
            super(name);
            this.age = age;
        }
    
        @Override
        public String eat() {
            return "猫吃东西,吃猫粮";
        }
    }


  • 相关阅读:
    CSS之EM相对单位
    html之canvas
    JS之事件监听
    html之iframe
    [转]nodejs中的process模块--child_process.exec
    [转]阮一峰:理解RESTful架构
    JS性能之滚动条之外的其他部分
    JS性能之setTimeout与clearTimeout
    CSS禁止鼠标事件---pointer-events:none
    打开文件、文件操作、管理上下文
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7461894.html
Copyright © 2020-2023  润新知