• 抽象


    抽象类的产生
       a:分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽    取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。
    7 抽象类的定义格式 
        A:抽象方法定义的格式:
            public abstract 返回值类型 方法名(参数);
            抽象类定义的格式:
            abstract class 类名 {
    
            }
    
    8 抽象类的使用方式
             package lijun.cn.chouxiang;
    
        public abstract class Develop {
            /*
             * public abstract 返回值类型 方法名(参数);
                抽象类定义的格式:
                abstract class 类名 {
    
                }
                
                //1 定义一个开发工程师类
                 *   EE开发工程师:工作
                 *   Ar 开发工程师:工作
                 *   形成一个父类  Develop   
                 *   abstract类不能new ---》不能实例化
                 *   具体干什么说不清
                 *   
             * */
            public abstract void work();
            public void wo(){
                System.out.println("普通方法");
            }
        }
         需要new其子类  
    9 抽象类特点
    
        a:抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
        b:抽象类不可以直接创建对象,原因:调用抽象方法没有意义。
        c:只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。
        之所以继承抽象类,更多的是在思想,是面对对象共性类型操作会更简单。
    10 抽象关键字abstract不可以和哪些关键字共存?    
        1:private:私有的方法子类是无法继承到的,也不存在覆盖,
            而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,
            而private修饰子类根本无法得到父类这个方法。互相矛盾。 
    
    
    /*
    * 抽象类,可以没有抽象方法,可以定义带有方法体的方法
    * 让子类继承后,可以直接使用
    eg:

    package cn.chouxiang.demo3;

    
    

    public abstract class Develop {
    public abstract void work();
    public void wo(){
    System.out.println("普通方法");
    }

    
    

    }

    package cn.chouxiang.demo3;

    public class Ar extends Develop{


    public void work() {
    System.out.println("Ar程序开发师开发手机");

    }

    }

    package cn.chouxiang.demo3;

    public class EE extends Develop {


    public void work() {
    System.out.println("javaEE开发拼多多");

    }

    }

    
    

    package cn.chouxiang.demo3;

    
    

    public class Text {

    
    

    public static void main(String[] args) {
    Ar a=new Ar();
    EE e=new EE();
    a.work();
    e.work();
    e.wo();

    
    

    }

    
    

    }

     
  • 相关阅读:
    观察者模式股票提醒
    中介者模式虚拟聊天室
    模板方法模式数据库的连接
    职责链模式财务审批
    期末总结
    软件需求分析考试
    tomcat启动极其慢的解决方法困扰我一年多的问题终于解决
    状态模式银行账户
    解释器模式
    动态加载JS文件提升访问网站速度
  • 原文地址:https://www.cnblogs.com/qurui1998/p/10537706.html
Copyright © 2020-2023  润新知