黑马程序员----抽象类
来源:互联网 发布:数据库英文缩写 编辑:程序博客网 时间:2024/05/22 14:17
抽象类:
抽象:笼统,模糊,看不懂!不具体。
犬科怎么叫?是不是不确定,这个时候就要抽象了!只能明确它有这个能力!
定义!子类继承!!
中文编译能通过!!!!搞笑~~
这种类有,后期会说明!
————————————————————————————————————————————————————————————————————————
抽象关键字不可以和那些关键字共存?
private 不行(子类要覆盖的,私有隐藏了怎么覆盖?)
static 不行(static是不是就可以直接调用啊?调用抽象方法有意思?)
final 不行(水火不相容,abstract说我需要被覆盖的,final说你不能被覆盖,这不搞笑么?~~)
抽象类和一般类的异同点。
相同点:
抽象类和一般类都是用来描述事物的,都在内部定了成员。
不同:
1,一般类有足够的信息描述事物。
抽象类描述事物的信息有可能不足。
2,一般类中不能定义抽象方法,只能定非抽象方法。
抽象类中可定义抽象方法,同时也可以定义非抽象方法。
3,一般类可以被实例化。
抽象类不可以被实例化。
5,抽象类一定是个父类吗?
是的。因为需要子类覆盖其方法后才可以对子类实例化。
练习:
/*雇员示例:需求:公司中程序员有姓名,工号,薪水,工作内容。项目经理除了有姓名,工号,薪水,还有奖金,工作内容。对给出需求进行数据建模。分析:在这个问题领域中,找出相关的对象,通过名词提炼法程序员:属性:姓名,工号,薪水行为:工作经理:属性:姓名,工号,薪水,奖金行为:工作看得出来,程序员和经理有着共同的属性,但是他们不存在直接继承的关系(因为程序员该有的能力经理不一定要有)所以就对他们的共性内容进行一个抽取,建立一个体系。分析完成,开始进行描述!描述完后建立对象就成为实实在在的实例了!激情^.^~~*///首先是描述抽取的共性内容------雇员(公司里面的员工都是雇员嘛)abstract class Employee //因为带有抽象方法,所以此类是抽象类{private String name;private int pay;private int id;private int age;Employee(String name ,int pay, int id,int age){this.name = name;this.pay = pay;this.id = id;this.age = age;}//姓名获取设置方法public String getName(){return this.name;}public void setName(String name){this.name = name;} //薪水获取、设置方法public int getPay(){return this.pay;}public void setPay(int pay){this.pay = pay;}//ID获取、设置方法public int getId(){return this.id;}public void setId(int id){this.id = id;}//年龄获取、设置方法public int getAge(){return this.age;}public void setAge(int age){this.age = age;}//员工都有工作,但是不具体是什么工作,抽象public abstract void work();}class Progammer extends Employee{Progammer(String name, int pay, int id , int age){super(name, pay, id , age);}public void work(){System.out.println("敲代码");}}class Manager extends Employee{private int bonus;Manager(String name, int pay, int id , int age,int bonus){super(name, pay, id , age);this.bonus = bonus;}//奖金获取、设置方法public int getBonus(){return this.bonus;}public void setBonus(int bonus){this.bonus = bonus;}//此方法是经理应有的能力,覆盖掉父类中的抽象类,具体起来public void work(){System.out.println("管理");}} class AbstractDemo{public static void main(String[] args) {//System.out.println("Hello World!");Manager M = new Manager("张三",8000,123,40,10000); Progammer P = new Progammer("李四",5000,520,25);System.out.println("经理的姓名是:"+M.getName()+"....薪水:"+M.getPay()+"....工号:"+M.getId()+"....年龄:"+M.getAge()+"....奖金:"+M.getBonus());System.out.println("程序员的姓名是:"+P.getName()+"....薪水:"+P.getPay()+"....工号:"+P.getId()+"....年龄:"+P.getAge());}}/*练习过程中的错误:1,调用方法的时候忘了添加括号,如:P.getAge */
0 0
- 黑马程序员--抽象类
- 黑马程序员--抽象类
- 黑马程序员----抽象类
- 黑马程序员---抽象类
- 黑马程序员-抽象类
- 黑马程序员----抽象类
- 黑马程序员---抽象类与抽象方法
- 黑马程序员_抽象类
- 黑马程序员----JAVA----抽象类----
- 黑马程序员_抽象类
- 黑马程序员---抽象类例子
- 黑马程序员-抽象类总结
- 黑马程序员—抽象类
- 黑马程序员-抽象类借口
- 黑马程序员_java抽象类
- 黑马程序员_抽象类
- 黑马程序员------------抽象类 接口
- 黑马程序员:抽象类、接口
- Failed build maven-gpg-plugin in openstack-java-sdk
- Matlab/Simulink与Arduino——资源小收集
- Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config.
- 串中取3个不同的字符
- ASP.Net连接Sqlserver简单举例
- 黑马程序员----抽象类
- 黑马程序员 java基础学习笔记3
- C51库函数原型列表
- mysql 严重锁表解决方案
- Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- java函数执行超时强制返回
- hadoop集群基本配置(大数据学习跟进)
- 关于Python中的for循环控制语句
- 浮点数的比较