java基础概念整理(三)
1、对象的上转型
对象的上转型不能调用和使用子类对象新增的成员和变量,不能调用子类新增的方法。
上转型对象可以访问子类继承或者隐藏的成员变量,也可以调用子类继承或者子类重写的实例方法。因此如果子类重写了父类的某个实例方法后,当对象的上转型对象调用这个实例方法时一定是调用了子类重新写的实例方法。
2、抽象方法
对于abstract方法,只允许声明,不允许实现,不允许使用final和abstract同时修饰一个方法或者一个类,abstract方法只能是实例方法,abstract类中可以有abstract方法。非abstract类中不可以有abstract方法。
3、面向对象编程,经常会使用到abstract类,abstract类只关心操作,不关系这些操作的具体实现的细节问题,
package com.Example1;
public class Exmaple5_12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
MobileTelephone telephone = new MobileTelephone();
SIM sim = new SIMofChinaMobile();
sim.setNumber("2454545");
telephone.userSIM(sim);
telephone.showMessage();
sim = new SIMofChinaUnicon();
sim.setNumber("454664646");
telephone.userSIM(sim);
telephone.showMessage();
}
}
abstract class SIM {
public abstract void setNumber(String n);
public abstract String giveNumber();
public abstract String giveCorpName();
}
class MobileTelephone {
SIM card;
public void userSIM(SIM card) {
this.card = card;
}
public void showMessage() {
System.out.println("use card name is" + card.giveCorpName());
System.out.println("SIm'number is" + card.giveNumber());
}
}
class SIMofChinaMobile extends SIM {
String number;
@Override
public void setNumber(String n) {
// TODO Auto-generated method stub
number = n;
}
@Override
public String giveNumber() {
// TODO Auto-generated method stub
return number;
}
@Override
public String giveCorpName() {
// TODO Auto-generated method stub
return "联通卡";
}
}
class SIMofChinaUnicon extends SIM {
String number;
@Override
public void setNumber(String n) {
// TODO Auto-generated method stub
number = n;
}
@Override
public String giveNumber() {
// TODO Auto-generated method stub
return number;
}
@Override
public String giveCorpName() {
// TODO Auto-generated method stub
return "中国移动";
}
}
4、继承是一种已有的类创建新的类的机制,利用继承,可以创建一个共有的属性的一般类,根据一般类创建据用特殊属性的新类。
java基础概念整理(三)的更多相关文章
- java基础概念整理综合 及补充(jdk1.8)
2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!-- --> 注释不能嵌套 代码都得有注释. 2,空格符: 3,css选择的优先级: id选择器 > ...
- JAVA基础概念(三)
JAVA方法入参和返回类型 方法入参 基础数据类型 引用数据类型 修饰符 返回类型 方法名(参数类型 参数名,参数类型 参数名...){//方法体return} 方法返回类型 return xxx 具 ...
- java基础解析系列(三)---HashMap
java基础解析系列(三)---HashMap java基础解析系列 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ...
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- Java基础 随笔整理
Java基础随笔整理 为了方便阅读,特整理了相关的学习笔记 Java感想 操千曲而后晓声 Java入门 Java其他 Java虚拟机详解 语言入门百题 Java开发工具 · Eclipse Java语 ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- java基础知识整理
java基础入门知识(转载请注明出处.) 1.JVM.JRE和JDK的区别. (1)JVM(Java Virtual Machine):java虚拟机,用于保证java跨平台的特性,java语言是跨平 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 2016第20周四java基础概念
简单的说JDK=JRE+Java编译器.调试器.工具类库等:JRE=JVM(类似于jre目录下的bin)+必要运行的类库(类似于jre目录下的lib) JVM:Java Virtual Mechina ...
随机推荐
- 简单重写容器vector
#pragma once #include <iostream> using namespace std; template<class T> class CMyVector ...
- 329 experience
截止到现在,给我最大的冲击就是HTML没有像JAVA那样严格 可以随意搭配,换句话说 HTML要的就是效果 没有一个固定的方法 即便是代码有错误 也可以实现效果 今天的东西挺好吃 能吃的消 哈哈 开森 ...
- MSSQL无法启动-原来电脑登录密码改了,重启后要设置
Sql Server (MSSQLSERVER) 服务无法启动 - 晓菜鸟 - 博客园 http://www.cnblogs.com/52XF/p/4230578.html --摘抄如下: 一.是 ...
- kali2.0的初始设置
1.修改源 leafpad /etc/apt/sources.list 加kali源 deb http://http.kali.org/kali kali-rolling main non-free ...
- 【转】Vim速查表-帮你提高N倍效率
Vim速查表-帮你提高N倍效率 转自:https://www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. ...
- linux shell中 if else for循环以及大于、小于、等于逻辑表达式的历程
作者:邓聪聪 比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格.笔者就曾因为空格缺少或位置不对,而浪费好多宝 ...
- http和ftp下载的区别
HTTP和FTP是两种网络传输协议的缩写,FTP是File Transportation Protocol(文件传输协议)的缩写,而HTTP则是Hyper Text Transportation Pr ...
- gnutls-3.5.18 static building for windows
gnutls-3.5.18 static building for windows Required libraries:1. libnettle 2. gmplib Optional librari ...
- ubuntu 安装 eclipse 及其CDT
CDT是在eclipse平台上进行c/c++程序开发的插件.首先安装eclipse平台. 1.在Ubuntu 16.04上查看 eclipse是否已经安装: eclipse 若已经安装,则会进入到ec ...
- ubuntu安装Qt
一.安装 卸载旧版本Qt,找到安装目录,例如:/home/likewei/Qt5.11.2,终端输入命令进入该目录,输入命令:./MaintenanceTool 进入图形画面卸载就行了 1. ...