古典音乐 (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了。把古典音乐当成音乐这就是向上转型。  其实我们第一个例子就用到了。

 

相关文章
|
16天前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
18天前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
10天前
|
Java 编译器
Java继承
Java继承
11 1
|
25天前
|
Java
Java 新手入门:Java 封装、继承、多态详解
Java 新手入门:Java 封装、继承、多态详解
30 1
|
18天前
|
Java
【Java基础面试四十二】、 static修饰的类能不能被继承?
这篇文章讨论了Java中static关键字修饰的类是否可以被继承,解释了静态内部类的概念、规则以及如何实例化。
|
24天前
|
Java 编译器
【Java】继承
【Java】继承
|
2月前
|
Java 程序员
【Java探索之旅】继承概念_语法_父类的成员访问
【Java探索之旅】继承概念_语法_父类的成员访问
41 10
|
2月前
|
安全 Java 开发者
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
24 1
|
2月前
|
Java 数据安全/隐私保护
Java中的类继承与多态详解
Java中的类继承与多态详解
|
2月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
下一篇
DDNS