美文网首页
Java面向对象的总结 续

Java面向对象的总结 续

作者: 锐的_b28e | 来源:发表于2018-06-07 21:31 被阅读0次

    首先创建一个父类,FatherBasic类。建立三个方法。

    FatherBasic类

    然后创建子类,继承父类。重写父类的方法。

    意思是:父类里有一些基本的方法,新建的子类根据老板的要求,重写相应方法。

    public class Son_1 extends FatherBasic{

    public void fun1(){

    System.out.println("第一代版本 调用子类方法1");   }

    public void fun2(){

    System.out.println("第一代版本 调用子类方法2");   }   }

    最后创建测试类

    意思是:测试类相当于一个模块,真实项目中会很多这样的类,执行程序的结果

    Test类

           很好,按照老板的要求做完了。(没有出现问题)然后,客户“想到了”好的点子,希望加进去。为了客户满意,老板想都没想满口答应。对手下说:改!

          写代码要比改代码容易。

          为了防止客户“良心”发现,想改回去。这是第一个子类作备份,再创建第二个子类。Son2

    public class Son_2 extends FatherBasic{

    public void fun1(){

    System.out.println("第二代版本 调用子类的方法1"); }

    public void fun2(){

    System.out.println("第二代版本 调用子类的方法2");}}

        好了,每个test类里的方法都是写好的。修改 指向的子类对象即可。

            有很多类似的测试类,需要调用子类的方法。每个类创建的对象都要修改,重复性的修改。并且一个个的翻找类,看谁调用了,一个也不能漏掉。

            老板看了看,说:很好。

            员工们笑笑不说话。

            客户对比了后,发现还是原来的好,问能不能改回来。

            老板。。。 员工。。。。

            在这里出现的需求是,有很多测试类要调用子类的方法,当需要不同子类的方法时,就要修改所有要调用的对象,也就是构造方法。为此,提出一种解决方案。

            不改动所有的类,新创建一个工厂类,factory类。用这个类来创建对象。

    factory类

            至于为什么要用父类FatherBasic为返回类型,让我们再看一下test类新的写法。

    Test类

        调用静态类factory里创建对象的方法,用父类FatherBasic指向。父类的引用指向子类对象。虽然这个对象是子类对象,但使用的是父类继承的属性和方法,优先调用子类重写父类的方法。这就是Java的多态。

        最重要的是,不论客户再有什么修改,只需要修改工厂类里的返回值,往下所有的test类都会跟着修改。减少了重复劳动,Java多态的优势就体现出来了。这个简易的例子就是,工厂模式。

    static关键字         final关键字

    下面要提写代码常用的两个修饰符

    static:静态。可以修饰代码块,方法,属性。

    ①静态方法和属性指向类,可以不用创建对象直接通过类调用方法。

    ②静态方法不能调用非静态成员

    ③静态属性仅在类加载时被初始化

    final:修饰符

    ①修饰类:最终类,不可被继承。也就是类的属性和方法不能被重写

    ②修饰方法:最终方法,方法不可被重载、重写

    ③修饰属性:最终属性,只能赋值一次,不可更改

        在复习Map集合框架的期间,遇到很多问题,其中的键值之间的运用不够熟练,会在后续重点总结一下其中的概念,原理和难点。下一篇会对Java面向对象进行一个扫尾工作。

    相关文章

      网友评论

          本文标题:Java面向对象的总结 续

          本文链接:https://www.haomeiwen.com/subject/klvcsftx.html