鱼C论坛

 找回密码
 立即注册
查看: 2947|回复: 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.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。


public class EmployeeDemo {
   public static void main(String[] args) {
        JavaTeacher teacher=new JavaTeacher(1,"大白",5555);
                        teacher.work();
        Leader leader =new Leader(2,"小黑",6666,10000);
        leader.work();
           
}
}
//抽象类
 abstract class Employee{
         private int number;
         private String name;
         private double salary;
         
         public Employee(int number,String name,double salary){
                 this.number=number;
                 this.name=name;
                 this.salary=salary;
         }
         //抽象方法的声明
         public abstract void work();
 }
 //一旦一个类去继承了抽象类,那么这个类要么实现抽象类中的抽象
 //方法,要么被定义成抽象类
 class JavaTeacher extends Employee{
           public JavaTeacher(int number,String name,double salary){
                   super(number,name,salary);
                   }
           public void work(){
                   System.out.println("上Java课");
           }
 }
 class Leader extends Employee{
         private double allowance;//津贴
           public Leader (int number,String name,double salary,double allowance){
                   super(number,name,salary);
                   this.allowance=allowance;
                   }
           public void work(){
                   System.out.println("培训新员工");
                   System.out.println("设计课程体系");
           }
}
 
 
 
 
 
 
  继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类来实现该抽象方法,否则,从最终的父类到最终的子类都不能用来实例化对象.

  

评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 13:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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