java学习笔记-----java基础08:继承和多态

1.继承的概念

java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的属性或新的方法,也可以用已存在的类的属性和方法。这样可以重复使用之前的代码,大大缩短开发周期,降低开发费用。

 2.继承需要注意的点

  •  java中用关键字extends表示类间的继承关系。
  • 子类可以继承父类中访问权限为public和protected的属性和方法,不可重写。
  • 子类可以继承在同一个包中父类中访问权限为默认权限的属性和方法。
  • 子类不能继承父类的构造方法。
  • 子类如果有和父类同名、同参数类型的方法,那么子类对象在调用该方法时,调用的是父类的方法,这就重写。如果想调用父类的同名方法和属性,需要用super关键字。
  • 用fial修饰的类不能被继承,final修饰的方法可以继承,不可重写。
  • java中没有多重继承。

3.重载和重写的区别

  • 重载的定义:在同一个类中,有两个及两个以上的方法具有相同的方法名,但参数列表不同。
  • 重载参数列表的不同表现为:参数的个数不同 ;参数的类型不同;参数类型排列顺序不同;注意:如果仅仅只有返回值的类型不同的方法不叫重载方法。
  • 重写的定义: 子类对父类中同名、同参数的方法进行覆盖,就是重写。
  • 重写需要满足的条件:子类中重写方法与父类中被重写的方法同名、同参数类型、同参数顺序和个数 ;还有返回值的类型必须相同;重写方法的访问权限不能比父类中的方法 访问权限小。用final修饰的方法不能被重写。

4.属性覆盖

子类和父类中的属性 命名相同时,当子类创建 的对象调用属性时,此时对象的属性为子类的属性,子类的属性会覆盖父类的属性;当父类创建对象用子类实现时,此时对象的属性为父类属性,不会被子类覆盖。

5.父类和子类成员初始化过程

父类的静态初始化块--->子类的静态初始化--->父类的非静态初始化块--->父类的构造--->子类的非静态初始化块--->子类的构造

6.多态

多态是指通过基类对象调用一个基类和子类都有的方法时,在运行时才确定到底调用的是基类方法还是子类方法,多态是动态连编的。多态的好处是增加了程序的可扩展性 。多态的三种形式:

  • 父类调用子类的任何对象
  • 利用参数的不同实现多态
  • 利用返回类型的不同实现多态

7.this和super关键字

 this代表当前对象,super代表当前对象的父类。this的作用有一下两个:      

  • 一个构造函数调用另一个调用函数,对构造函数的调用必须是第一条语句。
  • 将对象自身作为参数来调用一个函数。                                                                                                            

super的用法:在子类中调用父类的同名方法,或者在子类的构造函数中调用父类的构造函数,也必须是第一条语句。 

8.final关键字

  •  用final关键字定义的常量,在初始化或第一次赋值后,其值不可更改。
  • final对象的值不能被改变。
  • final方法不能被重置。
  • final 类不能被继承;所有的方法都是final的,但属性可以不是final的。 

 9. 多态的类型转换

  • 向上转型:父类的引用指向子类对象。向上转型,只能调用父类的方法,不能子类特有的方法。向上转型是安全的。
  • 向下转型:子类的引用指向父类对象。向下转型是不安全的。但是可以进行强制类型转换。

 

 

 

 

 

发布了15 篇原创文章 · 获赞 10 · 访问量 2226
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章