古典音乐 (java基础 继承)
摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!
一.前言
小朽不才,最近爱上了听古典音乐收录了,mozart ,贝多芬…等好听的歌很是喜欢。戴上耳机,打开电台,整理下java继承。
总结如下:
二. 继承(extends)
从编码中,咱们总是在不知不觉的用继承,明确的调用,或是隐式的调用了java根类Object。什么是继承?官方上说,继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。对我来说,继承就像古典音乐,来自音乐,却可有所不同。这就是说,古典音乐 extends 音乐
音乐类:Music.java
public class Music { private String name;
private String kindName;
private String description; /* ignore get/set methods of the parameters above*/ public void play(){
System.out.println(" music is playing");
}
}
上面定义了音乐的一些属性成员 和 方法
古典音乐 :ClassicalMusic.java
public class ClassicalMusic extends Music
{
public static void main(String[] args) {
ClassicalMusic classicalMusic = new ClassicalMusic();
classicalMusic.setName("I am ClassicalMusic");
classicalMusic.setKindName("Classical Music Kind");
classicalMusic.play();
}
}
#ouputs : music is playing
上面 古典音乐继承了音乐,通过继承,ClassicalMusic类叫做衍生类(derived class)。被继承的类Music类称为基类(base class)。所描述的关系是“is-a”关系。
使用继承需要记住的几点:
- 继承可以达到复用代码的方法。这就像一把双刃剑,用的好就好,用的不好就不好。在合适的地方用会更好
- 子类可以访问基类非private的属性和方法。
- 自然,子类也有权利申请自己需要的方法。那就是下面的 Mehtod Overriding
古典中寻找真谛,正如java继承中吹出古典味
三.方法覆盖(Mehtod Overriding)
在继承中,this 和 super是常见的关键词,super可以让我们很方便的调用到基类的方法或者构造器。在古典音乐中,我们加入属于他自己的播放方法。
@Override
public void play(){
super.play();
System.out.println(" but the Music is ClassicalMusic");
}
#outputs:
music is playing
but the Music is ClassicalMusic
最常见到的代码,就是各个DAO层对基类DAO层的实现。
四.protected
对于protected而言,它指明就类用户而言,他是private,但是对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言,他却是可以访问的。在项目中,SpringMVC Controller 的基类中存在对 日志,请求,响应,会话,还有service层的声明。
protected,就像保护着孩子的音乐细胞一样。只能让美好的,特定的音乐去访问。每个人都有每个人独特的品味,就像你mp3,或是手机里的音乐。那个属于你的去访问你音乐的细胞。
五.向上转型
is-a 的关系,表示古典音乐是属于音乐。它可以在广义上称为音乐,自然当一个人不懂古典音乐时,他完全可以把它当作音乐就ok了。把古典音乐当成音乐这就是向上转型。 其实我们第一个例子就用到了。
六.总结及参考文献[在此感谢]
http://www.cnblogs.com/chenssy/p/3354884.html
http://www.cnblogs.com/vamei/archive/2013/03/29/2982232.html
古典音乐 (java基础 继承)的更多相关文章
- 《Java基础——继承》
Java基础--继承 一.类的继承: 规则: 1.一个子类只能有一个父类,但一个父类可以有多个子类,每个子类都可以作为父类使用. 2.若一个类没有声明父类,则默认其父类为Object. 3.父 ...
- Java 基础 - 继承
子类继承父类的private字段么? Oracle的Java Documentation对Inheritance的定义: 很直白,定义里面就告诉你了这不叫继承.继承的意思是你可以对其进行直接的调用和修 ...
- java基础-继承
浏览以下内容前,请点击并阅读 声明 一个由其他类继承的类叫子类(也叫继承类,扩展类等),该类继承的类叫父类或超类.除了Object类意外,所有的类都有切仅有一个父类,如果一个类没有用extends关键 ...
- java基础-继承:矩形体积类问题
28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长.宽两种属性,和计算面积方法. (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长.宽.高属性, 和计算体积的方 ...
- Java基础--继承方法调用顺序
最近因为面试的原因,回过头来复习基础的知识,都忘光了,准备买本面试书回来啃. 我先把自己测试的结论总结写出来,以后忘记再来看看 如果b类继承自a类,在main方法中new出b的对象(不带参数),那么他 ...
- JAVA基础--继承和权限控制
1. extends继承 2. java只支持单继承,不允许多继承 修饰符 类内部 同一个包 子类 任何地方 private YES default YES YES protect ...
- Java基础——继承
学习Java继承之前,我们想回忆一下Java面向对象需要特别注意的几个关键点. 面向对象是将复杂的事情简单化了,它通过封装的方式使得代码的重用性更高和安全性更强.平时我们要学会用面向对象的方式去思考, ...
- Java基础---继承、抽象、接口
一.概述 继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单 ...
- java基础继承
为什么用继承: 因为继承可以减少代码的冗余,提高维护性,为了从根本上解决存在的问题,就需要继承,就是将多个类当中的相同的地方提取到一个父类当中.父类更通用,子类更具体. 父类的继承格式 语法:publ ...
随机推荐
- hive 优化方法
https://blog.csdn.net/jiangsanfeng1111/article/details/52847044 -- 高级优化 使用各种函数hive>show functions ...
- kettle连接oracle报错oracle.i18n.text.converter.CharacterConverter.OGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter
问题背景1:需要将一张excel中的数据导入到数据库中,并且还有关联转换和去重的处理问题,且此excel表不是固定的,需要写一个脚本 当新的excel拿来的时候,可以直接导入即可.所以我想用kettl ...
- jQuery获取元素的方法
1·$(".box").offset().left 获取盒子左边到浏览器左侧的距离(上右下相同): 2·$("span").width() 获取盒子的宽度(高度 ...
- Java实现图片的裁剪(包括透明背景)
需求: 有一张位置大小的图片,现在需要根据这张原图得到指定尺寸的图片,且得到的图片要符合原先图片的比例,就是在原图的基础上等比例缩放得到图片后,在进行剪裁,这样保证得到的图片是原图的一部分,而不是将原 ...
- centos7下安装mysql会遇到的问题集合
1.mysqld_safe提示 command not found 解决方法 https://blog.csdn.net/lampqiu/article/details/79138961 2.Mysq ...
- web页面font-family显示
font-family属性很简单,直接写在css或style样式中即可. 如: font-family: "Microsoft YaHei"; 但是如果希望电脑能正确的显示我们设置 ...
- Maths | 病态问题和条件数
目录 1. 概念定义 1.1. 病态/ 良态问题 1.2. 适定/ 非适定问题 1.3. 良态/ 病态矩阵和条件数 2. 病态的根源 3. 计算条件数的方法 3.1. 与特征值的关系 3.2. 与奇异 ...
- eslint 的 env 配置是干嘛使的?
这笔修改体现了 env 和 global 的关系: https://github.com/g8up/youDaoDict/commit/8b05616f 官方文档表述: https://eslint. ...
- Forward团队-爬虫豆瓣top250项目-项目总结
托管平台地址:https://github.com/xyhcq/top250 小组名称:Forward团队 组长:马壮 成员:李志宇.刘子轩.年光宇.邢云淇.张良 我们这次团队项目内容是爬取豆瓣电影T ...
- SpringMVC异步文件上传下载
首先了解一下File的构造方法: File(String pathname):根据一个路径得到File对象 File(String parent,String child):根据一个目录和一个子文件/ ...