abstract 抽象

abstract:抽象的意思

什么叫抽象呢?就是你看不大懂的东西咯

它作为一个修饰符,可以修饰类,方法。

它是怎么来的呢?

其实就是:在继承体系中,当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,只抽取功能定义,而不抽取功能主体

接下来就是抽象修饰类和函数的特点

被抽象的修饰的类有如下特点:

1:被抽象修饰的类不能被创建对象:因为创建了对象就会加载抽象的方法,而调用抽象的方法是没有任何意义的,所以则不能创建对象

2:被抽象修饰的类中允许存在非抽象的方法,但是当抽象的类中没有抽象方法时,那么这个抽象的唯一作用就是,不允许别人建立他的对象

*其实,抽象类和一般类没有什么区别,只是比别人多了些抽象的方法而已

被抽象的修饰的方法有如下特点:

1:如果子类继承了父类的抽象方法后,一定要复写:此方法,才会使这个方法有意义

2:如果一个类中存在抽象方法,那么这个类一定是抽象类。

3:在继承体系中,如果子类继承了一个抽象类,那么它一定要复写父类全部的抽象方法,才可以被创建对象,否则它作为一个抽象类,是不可以被建立对象的


结合生活中的例子来帮助理解和记忆吧1

假如我们进入学校,我们就是学生,学生的工作就是学习,但是不同年级专业学习的东西是不一样的,所以具体到每个人,要去学习的话,就是具体实现学习方法的动作

而对于工作的人,你进入一个公司,老板说,我们这里的员工都要工作,但是每个人的工作是不一样的,所以当你要工作时,就是要去具体的实现这个方法。


而在java中,尤其是在继承体系中,如果一个父类有多个子类时,那些子类都有某一个方法,但是实现那个方法的具体内容却不同,这时我们就只需要在父类中定义一个这个功能的主体,当某个子类要实现这个功能时,再由它自己去复写这个功能来时实现就好了。

下面再次借用传智播客视频中的那个小练习来巩固一下知识点(太懒了,懒得再去想例子了)

/*
假如我们在开发一个系统是需呀对员工进行建模,员工包含三个属性
姓名,工号以及工资,经理也是员工,除了含有员工的属性外,另外还有一个将近属性
请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性访问




分析:
员工类:name id pay
经理类:继承员工类,并有自己特有的奖金属性bonus。
*/


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 Pro extends Employee
{
Pro(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("pro work");
}
}
class Manager extends Employee
{
private int bonus;
Maneger(String name,String id,double pay,int bonus)
{
super(name,id,pay);
this.bonus=bonus;
}
public void work()
{
System.out.println("manager work");
}
}
class
{
public static void main(String []args)
{

}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值