黑马程序员----JAVA----面向对象小结(2)----

来源:互联网 发布:淘宝上买到假酒怎么办 编辑:程序博客网 时间:2024/06/04 18:08

 ----------------------------------android培训、java培训、期待与您交流!------------------------------

 

 

 

什么是单例设计模式:

         为了避免其他程序创建对象    (将构造函数私有化)

         为了让别的程序访问到本类的对象     (在类中创建本类的对象)

        为了方便其他程序对自定义程序进行访问,可以对外提供一个方法( 提供一个方法获取该对象);

 

饿汉式:类一加载进内存,就已经创建好了对象

class Single{

                        private Single(){}

                         private static Single  s=new Single();

                         public static  Single getInstance(){

                                  return s; 

                          }

}

 

懒汉式:对象的方法被调用时,才初始化,所以交叫延迟加载

class Single{

                private Single(){}

                private static Single s=null

                public static Single getInstance(){

                                if(s==null){

                                     s=new Single();

                       }

                   return s;

                   }

}

 

 

继承的由来:

            如果多个类中存在着相同的属性和方法,那么可以将其相同的部分提取出来,放到一个单独的类中,然后让原先的类去继承这个单独的类,这样原先的类就没有必要去定义那么多相同的属性和方法了。

 

继承的关键字:extends

                子类可以添加自己的功能。父类中的属性和方法也都继承下来了。

 

继承的好处:

              提高了代码的重用性

              为多态提供了先觉条件

java中只支持单继承:

                也就是说,一个爸爸可以有多个儿子,但一个儿子只能有一个爸爸;

 

当你调用一个对象的方法时,子类没有就去父类中找;

 

构造器不能继承,private的属性和方法也是无法继承的;

 

super :

      在一个类的内部,可以通过super去访问父类自对象;

      可以调用父类的属性,方法(但是不能是private)

      可以调用父类的构造函数

 

当一个类中只有一个private的构造函数时,那么这个类将不能被继承;

 

什么时候使用super:

         在子类构造器,显示调用父类的构造器;

         在子类中访问父类的属性或者方法

         当子类和父类有相同的属性时,想要使用父类的属性必须使用super;

 

重写(覆盖):
         在子类中写一个方法和父类中的方法一模一样,就是重写;

         private不能重写

         方法名和参数列表必须相同;

         返回值必须是父类的返回值,或者是其子类的返回值

 

多态:

        就是父类的引用指向子类的对象实体;

        只有向上转型才会有多态,所以经常说的向上转型就是多态;

         调用方法是由实体来决定的,而不是引用, 例如: Person p=new Student();这个就是个多态,父类引用指向  子类对象实体;

 

构造器(构造函数):

                 当子类继承了父类,父类又写了有参的构造函数,和无参的构造函数,当子类调用父类   构造器时,可以显示调用构造器(super()),也可以不写(super());因为不写,子  类会隐式调用父类的无参构造器。


                 当父类只有一个有参的构造函数,子类在调用父类的构造器时,必须显示调用父类的构  造器,如果不显示调用,会报错,因为父类没有无参的构造器

----------------------------------android培训、java培训、期待与您交流!------------------------------

原创粉丝点击