鱼C论坛

 找回密码
 立即注册
查看: 2546|回复: 0

[学习笔记] Java暑期学习Day17

[复制链接]
发表于 2017-7-21 23:49:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第17天,暑期已经过了大半个月,希望接下来的时光不要荒废掉


                               
登录/注册后可看大图



重新定义行为(plus)
  在JDK5之后支持标注,其中一个内建的标准标注就是@Override。如果在子类中某方法前标注@Override,表示要求编译程序检查,该方法是不是真的重新定义了子类中某个方法,如果不是的话,就会引发编译错误。
The method fight() of type SwordsMan must override or implement a supertype method


supertype 父型;  


implement  vt.实施,执行; 使生效,实现; 落实(政策); 把…填满;
                     n.工具,器械; 家具; 手段; [法]履行(契约等);



                               
登录/注册后可看大图



抽象方法、抽象类


A. 抽象类:Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法被称之为抽象方法,含有抽象方法的类被称之为抽象类。
  (抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类
         抽象类中的抽象方法只是声明,不包含方法体。)


B. 如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。类中若有方法没有操作,并且标示为abstract,表示这个类不完整,定义不完整的类不能用来生成实例。Java中规定内含抽象方法的类,一定要在class前标示abstract,表示这是一个定义不完整的抽象类。


C.抽象方法特点
  1.只有方法头没有方法体的方法称为抽象方法
  2.抽象方法用abstract来修饰
  3.抽象方法代表一种不确定的操作或行为
  4.抽象方法不能被调用

D.易混淆的点
  1.抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象。
  (——所以抽象类必须被继承,才能被使用。
    p.ps:一个类只能继承一个抽象类,而一个类可以实现多个接口。)


  2.抽象类中不一定含有抽象方法,但是有抽象方法的类必定是抽象类。
  3.构造方法,类方法(用static修饰的方法)不能声明为抽象对象。
  4.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。



  1. public class EmployeeDemo {
  2.    public static void main(String[] args) {
  3.         JavaTeacher teacher=new JavaTeacher(1,"大白",5555);
  4.                         teacher.work();
  5.         Leader leader =new Leader(2,"小黑",6666,10000);
  6.         leader.work();
  7.           
  8. }
  9. }
  10. //抽象类
  11. abstract class Employee{
  12.          private int number;
  13.          private String name;
  14.          private double salary;
  15.          
  16.          public Employee(int number,String name,double salary){
  17.                  this.number=number;
  18.                  this.name=name;
  19.                  this.salary=salary;
  20.          }
  21.          //抽象方法的声明
  22.          public abstract void work();
  23. }
  24. //一旦一个类去继承了抽象类,那么这个类要么实现抽象类中的抽象
  25. //方法,要么被定义成抽象类
  26. class JavaTeacher extends Employee{
  27.            public JavaTeacher(int number,String name,double salary){
  28.                    super(number,name,salary);
  29.                    }
  30.            public void work(){
  31.                    System.out.println("上Java课");
  32.            }
  33. }
  34. class Leader extends Employee{
  35.          private double allowance;//津贴
  36.            public Leader (int number,String name,double salary,double allowance){
  37.                    super(number,name,salary);
  38.                    this.allowance=allowance;
  39.                    }
  40.            public void work(){
  41.                    System.out.println("培训新员工");
  42.                    System.out.println("设计课程体系");
  43.            }
  44. }





复制代码

  继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类来实现该抽象方法,否则,从最终的父类到最终的子类都不能用来实例化对象.

  

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 04:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表