最新公告
  • 欢迎您光临立业阁,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • java什么是抽象类_Java教程


    一、什么是抽象类

    由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类。抽象的类无法进行实例化,因为他不是具体存在的类,或者说这样的类还不够完善,不能直接使用new关键字调用其构造器生成该类的对象。我们可以使用abstract定义一个抽象类和抽象方法,示例代码如下:

    abstract class 类名
    {
    abstract int 方法名(int x,int y);
    }

    抽象的方法没有方法体。需要注意的是在抽象类中既可以有抽象方法,也可以有普通方法,注意抽象方法是没有方法体的(也就是方法后面是没有大括号的)。凡是继承这个抽象类的实体子类,都必须要实现这个抽象方法。

    我们总结一下抽象类的特点:

    (1)抽象类不能被实例化;

    (2)构造方法 和 static 方法不能是抽象的;

    (3)父类的抽象方法往往在子类中实现;

    (4)抽象类可以具有指向子类对象的对象引用。

    二、抽象类的例子

    我们先来看看要完成的实际例子:

    1、定义抽象类员工Employee;

    (a)保护字段:姓名name,性别gender,年龄age等基本属性。

    (b)定义抽象方法函数getsalary()表示领工资的操作。

    (c)定义普通函数whoami()输出 :我是+姓名

    (d)拥有(姓名name,性别gender)参数的构造函数。

    定义一个经理类Manager派生于员工;

    (a)除了有员工等基本属性外,还有岗位级别gree私有属性。

    (b)经理领7000元工资,打印并输出工资。

    (c)重写父类的whoami(),调用父类的whoami()方法,再输出:我是一名经理。

    定义一个会计类Accounting,派生于员工类;

    (a)除了有员工等基本属性外,还有会计等级rating私有属性。

    (b)会计领3000元工资,打印并输出工资。

    (c)重写父类的whoami(),调用父类的whoami()方法,再输出:我是一名会计。

    /**
     * 定义类员工Employee,
     */
    public abstract class Employee {
        protected String name;
        protected boolean gender;
        protected int age;
        public Employee(String name,boolean gender){
            this.name=name;
            this.gender=gender;
        }
        /**
        * 表示领工资的操作
        */
        public abstract void getsalary();
        public void whoami(){
            System.out.println("我是"+name);
        }
    }

    我们新建一个经理类Manager,继承Employee类,这时候Eclipse就提示我们必须要重写抽象方法getsalary。示例代码如下:

    /**
     * 经理类
     */
    public class Manager extends Employee{
        private String gree;
        
        public Manager(String name,boolean gender){
            super(name,gender);
        }
        //重写父类的抽象方法
        public void getsalary(){
            System.out.println("经理领7000元工资");
        }
        public void whoami(){
            super.whoami();//显示调用父类的方法
            System.out.println("我是经理");
        }
    }

    接下来是会计类。和上面的经理类差不多了。

    /**
     * 会计
     */
    public class Accounting extends Employee {
        private int rating;
        public Accounting(String name, boolean gender) {
            super(name, gender);
        }
        @Override
        public void getsalary() {
            System.out.println("会计发3000工资");
        }
        public void whoami() {
            super.whoami();// 显示调用父类的方法
            System.out.println("我是会计");
        }
    }

    liyege.cn,大量的免费Java入门教程,欢迎在线学习!

    以上就是java什么是抽象类的详细内容,更多请关注liyege.cn其它相关文章!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 1175会员总数(位)
    • 111858资源总数(个)
    • 2本周发布(个)
    • 0 今日发布(个)
    • 246稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    冀ICP备19022365号-1 百度地图

    侵权联系邮箱[email protected]

    立业阁(www.liyege.cn)免费提供wordpress主题模板、dedecms模板、帝国cms模板、小说网站源码、电影网站源码以及网络技术分享,建站源码,小说模板,电影模板,网赚教程,VPS推荐