java中继承以及其他相关内容

              今天了解一下一些面向对象编程的进阶知识,关于java中的继承的相关内容。

              面向对象编程程序设计的一个重要特点就是类的重用,可以通过两种方法实现,一是将一个类的实例当作另一个类的属性,另外一种就是使用类的继承来实现,通过关键字extends,可以使一个类继承另一个类。继承的基本内容和c++相同,但是在java中需要注意的是:1.一个类只能从一个父类继承,不能从多个类中继承,即“单继承”方式;2.在java.lang包中有一个Object类,这个类是所有类的顶级父类,所有的java类,包括标准库中的类和自己定义的类,都直接或间接地继承了这个类。这个类没有任何的属性,只是定义了一些方法,因此,在java中,只要你定义了一个java类,就有一些默认的方法供你调用。

           关于访问控制问题。在java中,可以在类,类的属性及类的方法前面加上修饰符,来对类进行一些访问上的控制。在java中,定义了3个修饰符用来控制类,类的属性以及类的方法的访问范围。private:限制最严格,使用这个关键字来限制的属性或者方法只能在同一个类中被访问,需要注意一点,此修饰符不能用在类前面;default:在java中default不是关键字,只是对类,类的属性及类的方法的访问权限的一种称呼。如果在类,类的属性,类的方法前面没有添加任何的修饰符,则说它的访问权限就是default,在这种情况下,只有类本身或者同一个包中的其他类可以访问这些属性或方法,对于其他包中的类而言是不可以访问的;protected:使用此修饰符修饰的属性或方法,可以被同一个类,同一个包中的类及子类访问,需要注意此修饰符同样不能用在类前面;public:这个修饰符对类,类的属性及类的方法均可用,是最宽松的一种限制,使用这个修饰符修饰的类属性,类的方法可以被任何其他的类访问。一般来说,应该将和其他类无关的属性或方法设置为private的,只有需要将它给其他类访问的属性或方法才将它设置为public或protected,或者不加任何修饰符,即default。

           super关键字:在子类继承父类的过程中,可能需要在子类中调用父类中的成员,如属性,方法或者构造器,这个时候使用super关键字来完成。

           1.调用父类的构造器:super(父类构造器所需参数)

           2.调用父类属性:super.属性

           3.调用父类方法:super.方法()

           需要注意,在使用super关键字的调用父类的属性或方法时,父类的属性或方法必须是那些protected或public等可以让子类访问属性或方法。super主要用于在子类中定义了和父类中同名的属性,或进行了方法的覆盖,而又要在子类中访问父类中的同名属性或者覆盖前的方法的时候。

          this关键字:在编写类的方法的时候,会希望获得当前对象的引用,java引入关键字this,this代表其所在方法的当前对象:1.构造器中指该构造器所创建的新对象;2.方法中调用该方法的对象;3.在类本身的方法或构造器中引用该类的实例变量或方法。

         对于使用this调用当前对象的属性内容和c++一样,就是当局部变量名字和域的名字一样时,使用this用来区别;另一种必须使用this关键字的情况就是,需要在对象中明确地指明当前的对象引用是本对象的时候,比如需要返回当前对象的时候;还有就是在构造器中调用构造器,在一个类中,由于初始化条件不同,可能定义了多个构造器,在这些构造器中,可能一个构造器中的一段代码和另一个构造器完全相同,那么就可以在这个构造器中直接调用另一个构造器,使用this关键字,语法如下:this(参数);系统会依据参数的个数和类型找出类中匹配的构造器。需要注意,在一个构造器中最多只能调用一次其他的构造器,并且调用动作必须在构造器的起始处。

 

posted @ 2018-03-12 17:02  WangAlice  阅读(176)  评论(0编辑  收藏  举报