zoukankan      html  css  js  c++  java
  • Java中的抽象类

    • 抽象类
      抽象类无法实例化、无法创建对象
      1、例图:
      在这里插入图片描述
      2、什么是抽象类?
      类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。类本身是不存在的,所以抽象类无法创建对象(无法实例化)。
      3、抽象类属于什么类型?
      抽象类也属于引用数据类型
      4、抽象类怎么定义?
      语法:
    [修饰符列表] abstract class 类名{
                类体;
            }
    
    • 抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
    • final和abstract不能联合使用,这两个关键字是对立的。
    • 抽象类的子类可以是抽象类。抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。
    • 抽象类关联到一个概念:抽象方法。什么是抽象方法呢?
      1、抽象方法表示没有实现的方法,没有方法体的方法。
      例如:public abstract void dosome ();
      2、抽象方法特点是:
      特点1:没有方法体,以分号结尾
      特点2:前面修饰符列表中有abstract关键字
      3、抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。
    • 重要结论:
      1、一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现了。(将从父类中继承过来的抽象方法进行覆盖/重写,或者也可以叫做“实现"。)
      2、代码例子:
    package com.zyh.abstractTest;
    
    abstract class Animal {
        public abstract void move();
    }
    
    package com.zyh.abstractTest;
    
    class Bird extends Animal{
        public void move(){
            System.out.println("flying");
        }
    }
    
    package com.zyh.abstractTest;
    
    public class Test {
        public static void main(String[] args) {
            Animal a = new Bird();//向上转型
            //这就是面向抽象编程.
            // 以后你都是调用的a.xxxx,a的类型是Animal;
            // Animal是抽象的,面向抽象编程,不要面向具体编程;
            // 降低程序的耦合度,提高程序的扩展力;
            // 这种编程思想符合0CP原则.
            a.move();
        }
    }
    
    • 判断题:Java语言中凡是没有方法体的方法都是抽象方法
      (错误)
      object类中就有很多方法都没有方法体,都是以";"结尾的,但他们都不是抽象方法,例如:public native int hashcode();这个方法底层调用了c++写的动态链接库程序。前面修饰符列表中没有: abstract。有一个native。表示调用JVM本地程序。
  • 相关阅读:
    IDE-Sublime【3】-配置Node.js开发环境
    Java-Android【2】-弹出对话框
    Node.js-中文分词【1】-node-segment
    Java-Android【1】-控制手机震动
    IDE-Sublime【2】-代码智能提示插件SublimeCodeIntel的安装
    Node.js-安装配置【1】-在Windows XP系统配置环境变量
    Node.js-部署【1】-防火墙端口的配置
    Node.js-npm【1】-常用命令
    Node.js-视图引擎【1】-Swig集成express的安装与配置
    NoSQL-Redis【2】-HDEL给我的一个惊喜
  • 原文地址:https://www.cnblogs.com/yu011/p/12632714.html
Copyright © 2011-2022 走看看