zoukankan      html  css  js  c++  java
  • java===抽象类

    package cn.china;
    /**
     * 抽象类
     * 抽象:笼统,模糊,看不懂,不具体
     * 
     * 特点:
     * 1、方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。
     * 轴向方法必须定义在抽象类中,该类必须也被abstract修饰
     * 2、抽象类不可以被实例化,为什么?因为调用抽象方法没意义。
     * 3、抽象类必须由其子类覆盖了所有抽象方法后,该子类才可以实例化,
     * 否则该子类也是一个抽象类,不可以实例化
     * 五个问题:
     * 1、抽象类中有构造函数?
     * 有,用于给子类对象进行初始化
     * 2、抽象类中可不可以不定义抽象方法?
     * 可以的,但是很少见,目的就是不让该类创建对象,AWT的适配器对象就是这种类。
     * 通常这个类中方法有方法体却没有内容。
     * 3、抽象关键字不可以和哪些关键字共存?
     * private 不行,抽象方法时要被覆盖的,私有以后子类就继承不到该方法了
     * static 不行,静态以后不用对象就可以使用,但是抽象方法没有具体意义,所以不能使用
     * final 不行
     * 4、抽象类和一般类的异同点?
     * 相同点:抽象类和一般类都是用来描述事物的,都在内部定义了成员。
     * 不同点:一般类有足够的信息描述事物,抽象类描述事物的信息不足;
     * 一般类中不能定义抽象方法只能定义非抽象,抽象类中可以定义抽象方法也可以定义非抽象方法;
     *一般类可以被实例化,抽象类不能被实例化;
     *5、抽象类一定是父类?
     *是的,因为需要子类覆盖其方法后,才可以被子类实例化; 
     * abstract class Demo{
     * void show(){}
     * void show2(){}
     * }*/
    abstract class Employee{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id,double pay){
            this.name=name;
            this.id=id;
            this.pay=pay;
        }
        public abstract void work();
    }
    class Programer extends Employee{
        Programer(String name,String id,double pay){
            super(name, id, pay);
        }
        public void work(){
            System.out.println("code.....");
        }
    }
    class Manager extends Employee{
        private int bonus;
        Manager(String name,String id,double pay,int bonus){
            super(name, id, pay);
            this.bonus=bonus;
        }
        public void work(){
            System.out.println("mananger.....");
        }
    }
    abstract class Demo{
        abstract void show();
    }
    class DemoA extends Demo{
        void show(){
            
        }
    }
    class DemoB extends Demo{
        void show(){
            
        }
    }
    public class AbstractDemo {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
        }
    
    }
  • 相关阅读:
    传输速率转换
    CentOS7 安装 oracleXE(快捷版)教程
    QEMU/KVM虚拟机安装配置
    Nginx 1.10.1 编译、配置文档(支持http_v2,TLSv1.2,openssl v1.0.2)
    IDC机房线路质量测试方案
    Iptables防火墙NAT地址转换与端口转发
    Zabbix使用点滴
    MySQL基本命令
    防DDOS攻击SHELL脚本
    12月份的英文简写
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6518435.html
Copyright © 2011-2022 走看看