古典音乐 (java基础 继承)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

古典音乐 (java基础 继承)

简介:

        从编码中,咱们总是在不知不觉的用继承,明确的调用,或是隐式的调用了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

                                          image

                                          古典中寻找真谛,正如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层的声明。

                         image

 

                                                image

        protected,就像保护着孩子的音乐细胞一样。只能让美好的,特定的音乐去访问。每个人都有每个人独特的品味,就像你mp3,或是手机里的音乐。那个属于你的去访问你音乐的细胞

 

五.向上转型

        is-a 的关系,表示古典音乐是属于音乐。它可以在广义上称为音乐,自然当一个人不懂古典音乐时,他完全可以把它当作音乐就ok了。把古典音乐当成音乐这就是向上转型。  其实我们第一个例子就用到了。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: