Java中可扩展性的实现
在JAVA中程序的可扩展性的实现有两种,通过代码举例如下:
一、将基类类型作为参数类型,使用instanceof判断传入实参引用的所属类型,从而决定该执行那部分代码
public class TestSimpleExtend {
public static void main(String[] args) {
TestSimpleExtend test = new TestSimpleExtend();
Animal animal = new Animal("animalName");
Cat cat = new Cat("catName","yellow");
Dog dog = new Dog("dogNmae","black");
test.method(animal);
test.method(cat);
test.method(dog);
}
public void method(Animal obj) {
System.out.println("The animal's name is:" + obj.name);
if(obj instanceof Cat) {
Cat c = (Cat) obj;
System.out.println("and its eyesColor is:" + c.eyesColor);
}
if(obj instanceof Dog) {
Dog d = (Dog) obj;
System.out.println("and its furlColor is:" + d.furlColor);
}
}
}
class Animal {
String name;
//one-arg constructor
Animal(String name){
this.name = name;
}
}
class Cat extends Animal {
String eyesColor;
//two-args constructor
Cat(String name,String eyesColor) {
super(name);
this.eyesColor = eyesColor;
}
}
class Dog extends Animal {
String furlColor;
//two-args constructor
Dog(String name,String furlColor) {
super(name);
this.furlColor = furlColor;
}
}
二、使用“动态绑定”机制,它是面向对象思想最核心的机制,能够实现的可扩展性也最优。
使用“多态”有3点要求:1、要有继承; 2、要用方法覆盖; 3、基类引用指向子类的对象。
public class TestPolymoph {
public static void main(String[] args) {
Animal a = new Animal("animal");
Cat c = new Cat("catName","yellow");
Dog d = new Dog("dogNmae","black");
Lady ly1 = new Lady("Miss.",a);
Lady ly2 = new Lady("Mr.",c);
Lady ly3 = new Lady("Mrs.",d);
ly1.myPetEnjoy();
ly2.myPetEnjoy();
ly3.myPetEnjoy();
}
}
class Lady {
private String name;
private Animal pet;
Lady(String name,Animal pet){
this.name = name;
this.pet = pet;
}
public void myPetEnjoy() {
pet.enjoy();
}
}
class Animal {
String name;
//one-arg constructor
Animal(String name){
this.name = name;
}
public void enjoy(){
System.out.println("叫....");
}
}
class Cat extends Animal {
String furlColor;
//two-args constructor
Cat(String name,String furlColor) {
super(name);
this.furlColor = furlColor;
}
public void enjoy(){
System.out.println("猫叫....");
}
}
class Dog extends Animal {
String furlColor;
//two-args constructor
Dog(String name,String furlColor) {
super(name);
this.furlColor = furlColor;
}
public void enjoy(){
System.out.println("狗叫....");
}
}
分享到:
相关推荐
java实现的聊天工具,无需数据库,实现私聊、群聊功能,可以通过该项目对socket编程、多线程并发server有新的认识,代码架构清晰,可扩展性强。.zip 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站...
第二个实现是在Theatre actor系统之上实现的,该系统通过细粒度的资源控制确保更好的可扩展性和高性能计算。然后将这两种实现应用于标准基准数据集,这些数据集具有不同的人口规模和管理记录的分布、数据点的维度和...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
采用java语言编写的可扩展快速排序...SortArray.java(Array的实现类,可扩展), SortVector.java(承载Array,并使用快速排序算法对数组进行排序) SortTest.java(测试类) 要是有错的地方,望见谅,java新手路过。
该系统采用JAVA jsp+sql技术进行开发,通过MVC模式进行架构设计,使其具有良好的可扩展性和可维护性。该系统实现了对宠物诊所的全面管理,能够提高宠物诊所的工作效率和服务质量,为宠物主人提供更好的服务体验。
Java+servlet+javaBean实现MVC_jspmvc项目是一套基于Java平台开发的Web应用框架,旨在通过实现模型-视图-控制器(MVC)设计模式来提高Web应用程序的可维护性和可扩展性。此项目特别适合大学生在进行毕业设计时学习和...
本文旨在设计和实现一个基于Java...同时,本系统将充分考虑系统的可扩展性和可维护性,使得系统具有良好的适应性,能够满足不同图书馆的需求。 详细介绍参考:https://blog.csdn.net/newlw/article/details/131357353
通过以上技术选择和框架搭建,该项目可以实现一个高性能、可扩展性强的Web应用程序。开发人员可以基于框架提供的功能和组件进行快速开发,减少重复代码的编写,提高开发效率。同时,使用MySQL作为数据存储,可以保证...
javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing....
2. 提高可维护性:Spring框架的设计思想是基于面向对象的编程,它鼓励开发人员编写松耦合的代码,提高了Web应用程序的可维护性和可扩展性。 3. 支持依赖注入:Spring框架支持依赖注入,可以帮助开发人员更方便地...
在Java编程中,运用合适的设计模式可以提高代码的可维护性、可扩展性和可复用性。以下是关于Java版本设计模式实现demo的一些补充说明: 1. 设计模式分类 设计模式通常分为三大类:创建型模式、结构型模式和行为型模式...
xSocket是一个轻量级的基于nio的服务器框架用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理、异步读/写等方面。 Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的...
虚拟ID介绍jVoiD 是一种开源的... 它具有高度的可扩展性以满足需求的变化,并且可以与现有的信息系统集成。 它还提供完整的 Web 服务支持以及具有灵活安全性的服务器、工具和组件的各种选择。SpringMVC jVoiD 基于 Spri
多态是面向对象编程的重要特性,它允许一个接口被多种不同的数据类型实现,增强了代码的灵活性和可扩展性。 多态的实现方式 Java中的多态主要通过继承、接口和重写实现,子类可以覆盖父类的方法,使得在运行时能够...
此项目具有高度的可定制性和可扩展性,开发者可以根据自己的需求进行修改和扩展,实现更多有趣的功能和服务。无论是作为学习Java ME技术的实践案例,还是作为开发移动应用的基础框架,本项目都具有极高的价值。
本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。网上...
Eclipse是一个基于java的开放源代码的可扩展开发平台,是知名的跨平台的自由集成开发环境(IDE)Eclipse是一个基于,还捎带了一个标准规范的插件集,包含了Java开发工具(JDK),Eclipse因为安装不同的插件,所以它...
酒店是社会不可或缺的一项商业,有着很大的发展空间 。 一个职业化的管理层对一个酒店在现代市场竞争中建立持久的竞争 优势,取得持续的生存发展能力具有至关重要的意义 。 该酒店管理系统主要分为...,可扩展性强 。
这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存...
做过Android开发的程序员都知道,Android框架中所有资源都是通过XML配置文件来管理的,很好的实现了界面与业务代码的分离,提高了可扩展性。 我做这个小工具项目的思路其实在接触Android之前就已经有了,因为Java ...