当前位置: 首页 > news >正文

西安网站制作公司有哪家杭州市建设工程公示网站

西安网站制作公司有哪家,杭州市建设工程公示网站,上海哪家seo好,供货合同模板免费项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/abstract_ 一、抽象类的引入 很多时候在创建类的时候有一个父类#xff0c;比如animal类#xff0c;他的子类会有各种方法#xff0c;为了复用需要进行方法的重写… 项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/abstract_ 一、抽象类的引入 很多时候在创建类的时候有一个父类比如animal类他的子类会有各种方法为了复用需要进行方法的重写比如子类Cat会eat所以不得已只能在animal类内也需要写eat方法但没有意义。 所以当父类的某些方法需要声明但是又不确定如何实现时可以将其声明为抽象方法那么这个类就是抽象类。 abstract class Animal{// public void eat(){System.out.println(eat但不知道谁在吃);}//所以需要抽象方法//这里实现了eat但其实没有什么意义//即 父类方法不确定性的问题//考虑该方法设计为抽象(abstract)方法//所谓抽象方法就是没有实现的方法//所谓没有实现就是指没有方法体abstract public void eat();//注意 当一个类中存在抽家方法时需要将该类声明为abstract类//所以一般是子类来实现这个抽象方法的重写 } class Cat extends Animal{public void eat(){System.out.println(小猫在吃....);} } 二、抽象类的基本介绍 1)用abstract关键字来修饰个类时,这个类就叫抽象类访问修饰符abstract类名{ 2)用abstract关键字来修饰一个方法时这个方法就是抽象方法访问修饰符abstract返回类型方法名(参数列表)//没有方法体 3)抽象类的价值更多作用是在于设计是设计者设计好后让子类继承并实现抽象类() 4)抽象类是考官比较爱问的知识点在框架和设计模式使用较多 三、抽象类的注意事项和细节讨论 1)抽象类不能被实例化 报错A is abstract; cannot be instantiated 2)抽象类不定要包含abstract方法。 也就是说抽象类可以没有abstract方法 同上 上图的抽象类A类并没有抽象方法 3)一旦类包含了abstract方法则这个类必须声明为abstract 4) abstract只能修饰类和方法不能修饰属性和其它的。 5)抽象类可以有任意成员抽象类本质还是类比如:非抽象方法、构造器、静态属性等等 注意不能实例对象。 public class AbstractDetail02 {public static void main(String[] args) {D.nihao();} } abstract class D{public int n1 10;public static String name yinhai;public D(){}{}static {}public abstract void hello();public void ok(){}public static void nihao (){} }6)抽象方法不能有主体即不能实现如图所示abstract void aaa(){} 7)如果个类继承 了抽象类 则它必须实现抽象类的所有抽象方法除非它自己也声明为abstract类。 abstract class E{public abstract void hi(); } abstract class F extends E{} class G extends E{Overridepublic void hi() {//这里G类子类实现了父类E的抽象方法就是有方法体} } 8)抽象方法不能使用private,final和static来修饰因为这些关键字都是和重写相违背的。 四、抽象类的课堂练习 1)题1.思考: abstract final class A{}能编译通过吗why? // 不能 因为抽象的本意是继承重写 //final修饰就已经是最终类了 2)题2,思考: abstract public static void test2(); 能编译通过吗why? //不能 静态的方法是不能重写的 3)题3,思考: abstract private void test30;能编译通过吗why? //不能 除了public以外都不行 4)编写一个Employee类,声明为抽象类包含如下三个属性: name, id, salary.提供必要的构造器和抽象方法: work0. 对于Manager类来说他既是员工还具有奖金(bonus)的属性。请使用继承的思想设计CommonEmployee类和Manager类.要求类中提供必要的方法进行属性访问实现work().提示经理/普通员工名字工作中.... public double getSalary() {return salary;}public void setSalary(double salary) {this.salary salary;} } class Maanager extends Employee{private double bonus;public Maanager(String name, String id, double salary, double bonus) {super(name, id, salary);this.bonus bonus;}public void work(){System.out.println(经理 getName() 正在工作中);} } class CommonEmployee extends Employee{public void work(){System.out.println(普通员工 getName() 正在工作中);}public CommonEmployee(String name, String id, double salary) {super(name, id, salary);} } 五、模版设计模式 需求 1.有多个类完成不同的任务job 2.要求统计各自得到各自完成任务的时间 3.编程实现 引出模版设计模式 public class TestTemplate {public static void main(String[] args) {AA aa new AA();aa.job();BB bb new BB();bb.job();} }class AA {public void job() {//得到开始的时间long start System.currentTimeMillis();long num 0;for (long i 0; i 1000000; i) {num i;}//得到结束的时间long end System.currentTimeMillis();System.out.println(执行时间 (end - start) ms);}public void job2(){//得到开始的时间long start System.currentTimeMillis();long num 0;for (long i 0; i 3000000; i) {num i;}//得到结束的时间long end System.currentTimeMillis();System.out.println(执行时间 (end - start) ms);} }class BB {public void job() {//得到开始的时间long start System.currentTimeMillis();long num 0;for (long i 0; i 2000000; i) {num i;}//得到结束的时间long end System.currentTimeMillis();System.out.println(执行时间 (end - start) ms);} } 如果在每个单类里面写job和计算时间的代码块复用性会很差所以就引出模版设计设计一个父类里面塞进去共有的计算时间的方法然后塞入抽象job方法因为每一个对象在运行的时候会从本类开始查找所以构成了重写抽象job方法所以这种设计理念就相当于把父类作为一个模版其他继承。 所以改进该代码 public class TestTemplate {public static void main(String[] args) {AA aa new AA();BB bb new BB();aa.calWorkTime();bb.calWorkTime();} } abstract class Template{public abstract void job();public void calWorkTime(){long start System.currentTimeMillis();job();//动态绑定机制调用的是对象所在类内的方法没有再往上查找long end System.currentTimeMillis();System.out.println(执行时间 (end - start) ms);} } class AA extends Template{public void job() {long num 0;for (long i 0; i 1000000; i) {num i;}} } class BB extends Template{public void job() {long num 0;for (long i 0; i 2000000; i) {num i;}} }
http://www.dnsts.com.cn/news/101433.html

相关文章:

  • 山东宏远建设有限公司网站官方网站建设需要哪个部门审批
  • 淘宝客不做网站可以做么响应式网站管理系统
  • 企业电子商务网站的建设方式wordpress中文论坛
  • 庆阳做网站公司什么叫做网站建设
  • 湛江网站建设招聘公司网站策划书
  • 百度搜索推广的五大优势网站关键词优化实验结果分析
  • 为中小型企业构建网站自己做网站平台
  • 网站推广策划内容企业型网站建设步骤及注意事项
  • 山东省建设管理中心网站首页闸北网站优化公司
  • 网站公司注册流程做淘宝优惠网站步骤
  • 展示类网站开发费用哪些网站可以做电脑画画赚钱
  • 有专门教做儿童美食的网站吗咨询公司税率是多少
  • 如何做一元购物网站抖音seo怎么做
  • 石家庄网站小程序dede 网站源码
  • 网站建设职位要求做网站的计划概要
  • 建德网站seowordpress登录框插件
  • 现在从事网站开发如何目前流行的网站分辨率做多大
  • 深圳网站开发制作深圳电器公司排名
  • 我国空间站建造分类网站 模板
  • 网站开发一般用什么软件有哪些南京计算机培训机构哪个最好
  • 网站程序上传完西安网站开发公司地址
  • 网站设计培训班创业网页设计与网站建设docx
  • 网站建设的词windows优化大师软件介绍
  • 哪些网站可以做团购neutral wordpress
  • 网站编辑好做吗网站转wordpress
  • 网站信息抽查评估小程序开发定制开发
  • 网站推广的电子邮件推广谷歌浏览器下载安卓版
  • 视频网站怎么做防盗链遵义专业建站
  • 网站提示危险网站国家级一流本科专业建设点
  • 单页面网站有哪些网站建设卖手机代码