java多台

多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。

体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();父类可以调用子类中覆写过的(父类中有的方法)

多态的好处:提高了程序的扩展性。继承的父类或接口一般是类库中的东西,(如果要修改某个方法的具体实现方式)只有通过子类去覆写要改变的某一个方法,这样在通过将父类的应用指向子类的实例去调用覆写过的方法就行了!

多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)

多态的前提:

1:必须要有关系,比如继承、或者实现。

2:通常会有覆盖操作。

多态的出现思想上也做着变化:以前是创建对象并指挥对象做事情。有了多态以后,我们可以找到对象的共性类型,直接操作共性类型做事情即可,这样可以指挥一批对象做事情,即通过操作父类或接口实现。

--------------------------------------------------------------

class 毕姥爷{

void 讲课(){

System.out.println("企业管理");

}

void 钓鱼(){

System.out.println("钓鱼");

}

}

class 毕老师 extends 毕姥爷{

void 讲课(){

System.out.println("JAVA");

}

void 看电影(){

System.out.println("看电影");

}

}

class {

public static void main(String[] args) {

毕姥爷 x = new 毕老师(); //毕老师对象被提升为了毕姥爷类型。

// x.讲课();

// x.看电影();  //错误.

毕老师 y = (毕老师)x; //将毕姥爷类型强制转换成毕老师类型。

y.看电影();//在多态中,自始自终都是子类对象在做着类型的变化。

}

}

---------------------------------------------------------------

如果想用子类对象的特有方法,如何判断对象是哪个具体的子类类型呢?

可以可以通过一个关键字 instanceof ;//判断对象是否实现了指定的接口或继承了指定的类

格式:<对象 instanceof 类型> ,判断一个对象是否所属于指定的类型。

Student instanceof Person = true;//student继承了person类

时间: 2024-12-07 01:24:37

java多台的相关文章

Java多台的理解2

Java的多态一直是我们理解的一个难点.在读过<深入理解Java虚拟机>和<Java编程思想>以后,感觉理解更深刻了. 我们知道,当父类引用指向子类对象,并且子类覆盖父类中的接口时,当用父类引用调用此接口,则实际上是调用子类对象中的接口. 其实要理解这一点并不难,首先要明确下面两点: 1. 父类引用为何能指向子类对象? 子类是由父类继承而来,所以子类包含了父类中所有的接口.他们的关系是is-a关系,在任何使用父类的地方都可以用一个子类来代替,这也就是里氏替换原则. 里氏代换原则(L

java 大文件上传 断点续传 完整版实例 (Socket、IO流)

原文出自:https://blog.csdn.net/seesun2012 java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2.服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3.服:每接收到一个Socket就建立一个新的线程来处理它 4.客:利用Socket进行远程连接,询问已上传进度 5.客:使用File

java大文件断点续传

java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路:1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作2.服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求3.服:每接收到一个Socket就建立一个新的线程来处理它4.客:利用Socket进行远程连接,询问已上传进度5.客:使用FileInputStream.skip(long length)从指定位置读取文件,向服务器

react-native 学习 ----- React Navigation

很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后台台发,就再也没有写过移动端的东西了,知道rn的出现,发现这个比当年的web app phonegap好用多了就此一发不可收拾.公司app就是用的rn,我主要还是负责数据在store中的处理,框架也是公司大牛封装的,但是我心中总有一个移动端的梦想,所以我准备开始从零开始学习react-native.

转载maven安装,配置,入门

转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Maven的问题. 咖啡与工具 本书相当一部分的内容是在苏州十全街边的Solo咖啡馆完成的,老板Yin亲手烘焙咖啡豆.并能做出据说是苏州最好的咖啡,这小桥流水畔的温馨小

Mysql的主从复制读写分离--简单篇

Mysql基础拓扑图: Mysql环境准备: 一台mysql主服务器(安装mysql) 两台mysql从服务器(安装mysql) 一台mysql代理(安装amoeba和java) 一台mysql客户端(mysql客户端) 部署前先关闭所有的iptables,selinux Mysql的主从复制读写分离所需安装包: cmake-2.8.6.tar.gz mysql-5.5.22.tar.gz amoeba-mysql-binary-2.2.0.tar.gz jdk-7u65-linux-x64.t

Maven安装与更新

Maven是Apache组织中的一个颇为成功的开源项目,主要服务于基于Java平 台的项目构建.依赖管理和项目信息管理: 1) Maven是跨平台的,在Windows.Linux和Mac上都可以使用: 2) Maven可以帮助我们管理引入到项目中的开源类库,解决由于类库依赖增多可能导致的版本不一致.版本冲突.依赖臃肿等问题: 3) Maven能够帮助我们管理项目信息,包括项目描 述.开发者列表.版本控制系统地址.许可证.缺陷管理系统地址等: 4) Maven为Java开发者提供了免费的中央仓库,

JVM学习笔记(一)------的基本结构

从Java视台的逻辑结构,我们能够从图中学习JVM: 您可以从图表清楚地看到Java该平台包括各种逻辑模块,还可以学习JDK与JRE差异 于JVM它们的物理结构.我们可以看一下从图计划: 为JVM学习,所以,在我看来,最重要的部分: Java整个过程的代码被编译并运行 JVM内存管理和垃圾收集 下面具体的学习这两部分

大数据平台搭建笔记一:hadoop

0.机器准备 准备4台测试笔记本用于做服务器(装上CentOS6.5_x86_64系统)作部署集群. 配置每台机器上的/etc/hosts文件,例如: [[email protected] ~]$ sudo vi /etc/hosts 192.168.110.1  master 192.168.110.2   slave1 192.168.110.3   slave2 192.168.110.4   slave3 1.ssh免密码登录设置 [[email protected] ~]$ ssh -