zoukankan      html  css  js  c++  java
  • [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 "猫吃东西,吃猫粮";
        }
    }


  • 相关阅读:
    ZOJ2402 Lenny's Lucky Lotto List 简单DP
    HDU1024 最大M子段和问题 (单调队列优化)
    HDU2048 HDU2049 组合数系列 错排
    HDU1081 最大字段和 压缩数组(单调队列优化)
    HDU1166 数状数组
    HDU1085 多重背包
    HDU3062
    递归 递推 规律
    【机器学习PAI实战】—— 玩转人工智能之美食推荐
    阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7461894.html
Copyright © 2011-2022 走看看