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本地程序。
  • 相关阅读:
    HandlerExceptionResolver 实现全局异常捕获
    Cocoapods安装过程
    mysql 安装
    崩溃日志的字段简单说明
    简述static关键字、void与void *(void指针)、函数指针
    在python后台如何将客户端提交的form表单数据提取出来?
    iOS如何提高页面流畅度
    屏幕显示机制
    计算机网络体系小知识
    Protobuf java版本安装步骤
  • 原文地址:https://www.cnblogs.com/yu011/p/12632714.html
Copyright © 2011-2022 走看看