zoukankan      html  css  js  c++  java
  • JAVA抽象类和抽象方法(abstract)

    一、抽象(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("猫叫:");
    
        }
    }

    抽象类中的抽象方法,是所有子类所必备具备的,只是各子类的实现方式不一样。父类只提供基本的功能,具体怎么实现则由各子类完成。

    功能不确定的,就可以用抽象来

    抽象类的特点:
    1、抽象方法一定被定义在抽象类串
    2、抽象方法、抽象类必须被abstract关键字修饰
    3、抽象方法不能用new创建对象,因为调用抽象方法没有意义
    4、抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,再建立子类对象调用。如果子类只复写了部分抽象方法,那些该子类一个抽象类

    抽象类可以有抽象方法,也可以有非抽象方法;也可以没有抽象方法。

    父类中的抽象方法,在子类中必须复写。达到父类强制子类完成其功能。

    抽象类与一般类的区别:

    无太大的区别,该如何描述事物就如何描述。只不过,该事物中出现了一些不确认的东西。这些不确认的东西,也是访一事物的功能,需要确认体现,但无法定义功能主体。

    抽象类比一般类多了抽象方法。

    抽象类不能被实例化。

  • 相关阅读:
    win10家庭版安装Docker for Windows
    docker镜像拉取速度过慢的解决
    解决docker: error pulling image configuration: Get https://registry-1.docker.io/v2/library/mysql/: TLS handshake timeout.
    ubuntu16.04下安装docker
    Ubuntu 16.04执行 sudo apt-get update非常慢解决方案
    [转载]MySQL存储过程详解  mysql 存储过程
    除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,
    windows资源管理器已经停止工作
    Shell脚本sqlldr导入数据压缩文件截断
    oracle 日常运维
  • 原文地址:https://www.cnblogs.com/chenzxl/p/12187313.html
Copyright © 2011-2022 走看看