• 章节五、3-抽象类


    一、抽象类:一个类中没有包含足够的信息来描述具体的事物。

    用来捕捉子类的通用特性,比如两个事物具备共性,就可以向上抽取。

    抽象类不能被实例化,只能被用作子类的父类。

    在java中有两种方式能够只写方法名,不写方法体,一是抽象类,二是接口(本文介绍抽象类)

    二、建立一个抽象类(抽象类的关键为abstract)

    package introduction7;
    //abstract是手动输入的
    public abstract class AbstractCars {
    }

    三、抽象类中可以包含抽象方法,抽象方法也需要用abstract关键字进行修饰。

    四、抽象方法和抽象类的关系

    1、抽象类中不一定有抽象方法,当有抽象方法的类一定是抽象类。

    2、抽象类中的抽象方法必须被实现。

    3、如果一个子类中没有实现父类中的抽象方法,那么子类也成为了一个抽象类。

    4、抽象类必须被继承,抽象方法必须被重写。

    五、如何使用抽象类、抽象方法?

    1、创建两个类,AbstractCars和AbstractDemoBMW

    其中AbstractCars包含以下内容:

    package introduction7;
    //abstract是手动输入的
    public abstract class AbstractCars {
        int speed;
        private int privateSpeed;
        protected int protectedSpeed;
        public AbstractCars() {
            this(0);
        }
    
        public AbstractCars(int startSpeed) {
            speed = startSpeed;
        }
        
        public void setprivateSpeed(int privateSpeed) {
            this.privateSpeed = privateSpeed;
        }
        
        //抽象方法,任何继承了这个类的子类都必须实现这个抽象方法
        public abstract void engineStart(String keyType,int num);

    }

    AbstractDemoBMW主要用来演示调用。

    2、如果AbstractDemoBMW想使用AbstractCars这个抽象类,必须先继承AbstractCars

    package introduction7;
    
    public class AbstractDemoBMW extends AbstractCars{
        public void setprivateSpeed(int privateSpeed) {
            super.setprivateSpeed(10);
        }
        
        //实现父类中的抽象方法,如果不实现直接调用,程序会报错
        @Override
        public void engineStart(String keyType, int num) {
            System.out.println("这是bmw的启动方式。。。");
        }
    }
  • 相关阅读:
    [zt]VisualStudio2005技巧集合你真的会使用断点吗?
    轻松掌握Windows窗体间的数据交互
    Real Multithreading in .NET 2.0
    [zt]petshop4.0 详解之八(PetShop表示层设计)
    9.6 english log
    浅谈“三层结构”原理与用意
    [zt]petshop4.0 详解之四(PetShop之ASP.NET缓存)
    [虚拟技术]你会选谁:Red Hat还是Ubuntu KVM虚拟化?
    [虚拟技术]Linux KVM与Xen,QEMU的性能比较
    [虚拟化平台技术]选择哪一种虚拟化平台 KVM还是Xen?
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/9549386.html
Copyright © 2020-2023  润新知