抽象

抽象类的产生
   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();


}


}

 
原文地址:https://www.cnblogs.com/qurui1998/p/10537706.html