zoukankan      html  css  js  c++  java
  • abstract抽象类

    abstract:抽象

    是用来修饰抽象类和抽象方法的

    那么什么抽象,抽象有究竟有什么用呢??

    我们知道,“类”是某一类具有相同特征或行为的物事,是将这些物事特征向上抽取得来的;“父类”也是子类不断向上抽取而来的。

    比如人这个“类”,都有说话的功能;人“类”下有很多子类,如“中国人”、“德国人”、“法国”人,其都有各自己的语言,即说话功能各不相同。

    也就是说子类的继承父类“说话”功能的同时,都有各自己特殊的说话功能,用代码表示也就是“子类说话功能会覆盖父类说话功能”。

    在这样的情况下,在父类中定义说话功能就显得多余了,因为其被所有子类覆盖。

    此时,父类的说话功能内容就要以去除,只保留功能定义,并用abstract(抽象)修饰。

    package javastudy;
    
    public class AbstractDemo1 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
        }
    }
    
    // 这就是一个抽象类
    abstract class Animal {
        String name;
        int age;
    
        // 动物会叫
        public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有函数体。但在后续在继承时,要具体实现此方法。
    }
    
    // 抽象类可以被继承
    // 当继承的父类是抽象类时,需要将抽象类中的所有抽象方法全部实现。
    class cat extends Animal {
        // 实现父类的cry抽象方法
        public void cry() {
            System.out.println("猫叫:");
    
        }
    }

    二、用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

    三、抽象方法不能有方法主体。格式如下:

    abstract void xxx();

    四、抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

    五、抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

    六、一旦类中包含了abstract方法,那类该类必须声明为abstract类。

  • 相关阅读:
    异步任务AsyncTask
    巧用TextView实现分隔线
    android系统的常用权限
    浅析对话框AlertDialog
    LinearLayout中的layout_weight属性详解
    CLOB大数据对象
    模糊查询demo
    ES6 箭头函数
    ES6中数组求和,求平均数方法( reduce )
    ES6中数组方法( every 和 some )
  • 原文地址:https://www.cnblogs.com/chenzxl/p/12187305.html
Copyright © 2011-2022 走看看