Java继承之object类、继承小练习和继承简单工厂模式
1、object类常见方法
(1)Java中,所有类都直接或间接继承自java.lang.Object类,Object类可以说是Java中所有类的祖先即根类
(2)Java中任何类都继承了Object类中的方法,主要有:toString()、equals()、hashcode()、clone()、getClass()、finalize()
可以根据需求,适当地对object类中地方法如toString()、equals()进行重写,示例:
package jicheng.zhangkun.java;class Person{String name;String address;public void printInfo(){System.out.println("Person name: "+name);}public void printAddress(){System.out.println("Person address: "+address);}public String toString() { //重写toString(),输出打印我们想要的结果return "person message:"+name+","+address;}public boolean equals(Object arg0) { //重写equals(),可判断两个实例化对象是否相同Person p = (Person)arg0; //将arg0强制转换成Person类if (this.name == p.name && this.address == p.address){return true;}else {return false;}}
}public class Test {public static void main(String[] args) {Person p = new Person();p.name = "张坤";p.address = "上海";System.out.println(p.toString());Person p2 = new Person();p2.name = "张坤";p2.address = "上海";System.out.println(p2.toString());System.out.println(p.equals(p2));}
}
运行结果:
person message:王五,北京
person message:六二,上海
false
2、继承小练习
package chiji.zhangkun.java;class Weapon{String name;public void weaponAttack(){System.out.println("武器攻击");}
}class Player{String name;String rank;Weapon weapon;public void attack(){System.out.println("玩家攻击");}
}class K98 extends Weapon{String name;public void weaponAttack(){System.out.println("98K攻击");}
}
class M4A1 extends Weapon{String name;public void weaponAttack(){System.out.println("M4A1攻击");}
}public class Chiji {public static void main(String[] args) {Player p = new Player();p.name = "张坤";p.rank = "荣耀王者";p.weapon = new Weapon();p.attack();p.weapon = new Weapon();p.weapon.weaponAttack();p.weapon = new K98(); //多态p.weapon.weaponAttack();p.weapon = new M4A1(); //多态p.weapon.weaponAttack();}
}
运行结果:
玩家攻击
武器攻击
98K攻击
M4A1攻击
3、继承简单工厂模式
在智能家居项目中,有涉及到简单工厂模式,核心思想就是把指令和设备看作两个工厂,将各设备以及指令以链表的形式串联起来,再通过设备名和指令名分别进行链表的查找。对于Java面向对象的编程语言,实现简单工厂模式就很简单了,简单工厂代码示例如下:
class Fruit{String name;public void grup(){System.out.println("好吃的水果");}public Fruit(String name){this.name = name;}
}class Apple extends Fruit{public void grup(){System.out.println("好吃的苹果");}public Apple(String name){super(name);}
}
class Peach extends Fruit{public void grup(){System.out.println("好吃的莉");}public Peach(String name){super(name);}
}
class Factory{public static Fruit getFruit(String name){if (name == "苹果"){return new Apple(name);}else if (name == "莉"){return new Peach(name);}else if (name == "水果"){return new Fruit(name);}else {return null;}}
}
public class Test {public static void main(String[] args) {Factory.getFruit("水果").grup();Factory.getFruit("苹果").grup();Factory.getFruit("莉").grup();}
}
在实际项目中,可把“水果”、“苹果”、“莉”继承Fruit后分文件写。
运行结果:
好吃的水果
好吃的苹果
好吃的莉
Java继承之object类、继承小练习和继承简单工厂模式相关推荐
- java圣经_Java设计模式圣经连载(01)-简单工厂模式[转载]
简单工厂模式是类的创建,又叫静态工厂方法(Static Factory Methord)模式.简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例. 1.1.1 工厂模式的几种形态 工厂模式专门负责 ...
- Java啤酒生产系统描述_Java描述设计模式(02):简单工厂模式
一.生活场景简介 1.引入场景 订餐流程简单描述 1).食品抽象类,规定食品的基础属性操作 2).鱼类,鸡肉类食品类扩展 3).订餐流程类,根据食品名称,加工指定类型食品 4).模拟客户端预定操作 2 ...
- object 构造器java_“java”中为什么“Object”类要有一个空的构造函数?
展开全部 其他的类之所以可以不用给他写无参的构造函数(方法),就是因为这些类继承了Object类,e68a84e8a2ad323131333532363134313032313635333133336 ...
- java之设计模式工厂三兄弟之简单工厂模式
[学习难度:★★☆☆☆,使用频率:★★★☆☆] 工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式.本章将要学习的简单工厂模式是工厂方法模式的& ...
- 简单工厂模式(Java、Python)、工厂方法模式(Java、Python)
目录 一.试画出简单工厂模式的模式结构图,并对模式进行分析 1.1 简单工厂模式结构图: 1.2 简单工厂模式的实现(Java) 1.3 简单工厂模式的优缺点 1.4 简单工厂模式实现(Python) ...
- java的简单工厂模式_java设计模式之简单工厂模式
简单工厂模式的概念 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. ...
- java工厂模式式代码_简单工厂模式及其简单Java案例代码实现
说明:本文是<大话设计模式>的学习记录及结合网上相关信息编写,原书代码例子采用C#编写,本文采用Java稍加改写.若有不当,欢迎指正,共同进步.java 1.简单工厂模式概述:设计模式 简 ...
- Java设计模式之简单工厂模式实验(软件工程综合实践课程第二周)
实验目的 1 .理解软件设计的相关理论 : 2 .理解面向对象设计原则: 实验内容 1 .简单工厂模式实验: (1) 参考讲义上的代码,利用简单工厂模式完成计算器应用程序: (2) 画出计算器程序简单 ...
- JAVA设计模式——工厂模式【简单工厂模式、工厂方法模式、抽象工厂模式】
目录 简单工厂模式 传统方式 简单工厂模式 静态工厂模式 工厂方法模式 抽象工厂模式 工厂模式JDK-Calendar源码分析 工厂模式小结 简单工厂模式 看一个具体的需求 看一个披萨的项目:要便 ...
- 轻松看懂java设计模式简单工厂模式
点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...
最新文章
- Kotlin学习入门笔记
- git clone 报错 “Clone failed: Authentication failed for xxxxx”(做过测试)
- java 中violate_Java中的volatile关键字及Cache更新
- 无线网卡dns服务器没有响应,无线网卡上不去网怎么设置dns
- 频繁使用花呗、借呗、微粒贷、京东白条会影响在银行的信用吗?
- [安全测试报告]针对某厂商的一次渗透性测试
- ora-00119和ora-00132解决方案
- Android 颜色渲染(三) Shader颜色渲染
- pagination分页(支持首页,末页,跳转)
- android分区调整大小写,小米2 32G开发版 无损分区调整
- 【算法与数据结构】—— 大数运算
- linux下最常见的操作和命令
- netbeans卸载
- android sensor hal,Android Sensor详解(3)porting drvier
- 名帖77 刘弘珪 楷书《金刚般若波罗蜜经》
- 维护一个大型开源项目,例如vscode是怎样的体验?
- 指纹支付 android 9,华为G9青春版怎么设置指纹功能? 华为G9指纹支付解锁的教程...
- 页面js打开 qq客户端对话框(已测试)
- blood pressure android app,BP(Blood Pressure) Diary
- Outlook.com高级版优惠价截止日顺延到6月30日