java学习笔记

来源:互联网 发布:淘宝家政服务平台 编辑:程序博客网 时间:2024/06/05 15:33

  • 35 方法重载OverLoad
    • 35-1两同三不同
    • 35-2只有返回值不同不构成方法的重载
    • 35-3只有形参的名称不同不构成方法的重载
    • 35-4不仅普通方法可以重载构造方法也可以重载
  • 37 this关键字
  • 38面向对象的三大特征
    • 继承
  • 39方法的重写OverRide
  • 40Object类

(35) 方法重载(OverLoad)

方法的重载是指一个类可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。

(35-1)两同三不同:

  • 两 同:同一个类,同一个方法名。
  • 三不同:参数类型不同,参数个数不同,参数顺序不同。

(35-2)只有返回值不同不构成方法的重载。

(35-3)只有形参的名称不同,不构成方法的重载。

(35-4)不仅普通方法可以重载,构造方法也可以重载。

(37) this关键字

  1. 普通方法中,this总是指向调用该方法的对象。
  2. 构造方法中,this总是指向正要初始化的对象。
  3. this不能用于static方法。

this是隐形参数,每个方法都会传递这个参数,this可以理解为对象的地址。


这里写代码片

(38)面向对象的三大特征

  • 继承
  • 封装/隐藏
  • 多态
    • 为了适应需求的多重变化,使代码变得更加通用

继承


例:

这里写图片描述

继承自哺乳动物哺乳动物继承自动物


类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。可以提高代码的复用性,extends的意思是“扩展”,子类是对父类的扩展。

子类继承父类,可以得到父类的全部属性和方法(出了父类的构造方法)。java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护,就像我们现实中,如果你有多个父母亲,那是多么一个混乱的世界。多继承,就是为了实现代码的复用型,却引入了复杂性,使得系统类之间的关系混乱。

java中的多继承,可以通过接口来实现。
如果定义一个类是,没有调用extends,则它的父类是java.lang.Object(比如上图中的动物的父类)

不同的叫法:超类、父类、基类、子类、派生类

多继承:一个类可以有多个直接父类。
(直接父类,间接父类)

(39)方法的重写(OverRide)

  • 重写指的是在子类中根据需要对从基类中继承来的方法进行重写。
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
  • 重写方法不能使用比被重写方法更严格的访问权限。

例:


package TestOverRide;public class Animal {    public void Run() {        System.out.println("奔跑吧,Animal!");    }    public void Eat() {        System.out.println("我在吃饭!");    }}class Bird extends Animal {    //对Run()方法的重写    public void Run() {        System.out.println("飞呀飞!");    }}


package TestOverRide;public class Test {    public static void main(String[] args) {        Bird bd = new Bird();        bd.Run();        bd.Eat();    }   }

运行结果:


飞呀飞!我在吃饭!

上述例子中,Bird类中的Run()方法就是对父类Animal类中的Run()方法的重写,如果没有在Bird类中对Run()方法进行重写,运行结果应为奔跑吧,Animal!我在吃饭!

(40)Object类

所有类都是Object类的子类,即Object类是所有java类的根基类。如果在类的声明中未适用extends关键字指明其基类,则默认基类为Object类。

0 0