Java

Java基础语法:

  • 类:类是一个模板,他描述一类对象的行为和状态。
  • 对象:对象是类的一个实例,有行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。
  • 实例变量:每个对象都有独特的实例变量,对象的状态是由变量的值决定的。

继承:

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R1spKETm-1603156361633)(C:\Users\c-z-s\AppData\Local\Temp\types_of_inheritance-1.png)]

继承的特性:

  • 子类拥有父类非private(私有的)属性,方法。

  • 子类拥有自己的属性和方法,即子类对父类的扩展。

  • 子类可以用自己的方式实现父类中的方法。

  • ​ Java 的继承是单继承,但可以多重继承(见上图),

  • ​ 提高了类之间的耦合性

    继承的关键字:

    ​ 继承可以使用 extends 和 implements 这两个关键字来实现继承。

    extends关键字

    ​ 在Java中,类的继承是单一继承,一个子类只能拥有一个父类,所以extends只能继承一个类。

    implements:

    ​ 使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

    super 与 this 关键字:

    ​ super: 可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

    ​ this:指向自己的引用。

    final关键字

    ​ final(常量)声明类可以把类定义成不能继承的类,或者用于修饰方法,该方法不能被重写。

    声明类:

   final class 类名{//类体}

​ 声明方法:

修饰符(public/private/default/protected)final  返回值类型  方法名  (){//方法体}
            public:公开的类, private:在同一类中可见,protected:对同一包中的类和所有子类可见。

构造器:

子类不继承父类的构造器(构造方法或构造函数),只是调用(显式/隐式)。如果父类的构造器带有参数,则必须在子类的构造器中显示地通过super关键字并调用父类的构造器并配以适当的参数列表。

如无,不需super系统自动调用。

Java 封装:

​ 在面向对象程式设计方法中,封装 是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

​ 要访问该类的代码和数据,必须通过严格的接口控制。

​ 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

良好的封装能够减少耦合。

类内部的结构可以自由修改。

可以对成员变量进行更精确的控制。

隐藏信息,实现细节。

    private 类型 变量名;     get,set方法     

任何要访问类中的私有成员变量的类都要通过get和set方法。

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。


Java 重写(Override)与重载(Overload):

​ 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

方法的重写规则:

  • 参数列表与被重写方法的参数列表必须完全相同。
  • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。
  • 访问权限不能比父类中被重写的方法的访问权限更低。{例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。
  • 父类的成员方法只能被它的子类重写。
  • 声明为 final 的方法不能被重写。
  • 声明为 static 的方法不能被重写,但是能够被再次声明
  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。
  • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
  • 构造方法不能被重写。
  • 如果不能继承一个类,则不能重写该类的方法。
重载(Overload):

​ 重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

​ 每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

重载规则:

  • 被重载的方法必须改变参数列表(参数个数或类型不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。
重写与重载之间的区别:
区别点重载方法重写方法
参数列表必须修改一定不能修改
返回类型可以修改一定不能修改
异常可以修改可以减少或删除,一定不能抛出新的或者更广的异常
访问可以修改一定不能做更严格的限制(可以降低限制)

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。

(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。

(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。

(3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。


Java多态:

多态是同一个行为具有多个不同表现形式或形态的能力。

​ 多态就是同一接口,使用不同的实例而执行不同的操作。

多态的优点:
  1. 消除类型之间的耦合关系    

  2. 可替换性 

  3. 可扩充性     

  4. 接口性       

  5. 灵活性

  6. 简化性
多态存在的三个必要条件

继承,重写,父类引用指向子类的对象。

   Parebt p=new Child();   //当使用多态调用方法时,首先检查父类中是否有该方法。如有再去调用子类中的同名方法。

多态的好处:

​ 可以使程序有良好的扩展性,并可以对所有类的对象进行通用处理。

重写:

子类可以重写父类中的方法,但是当子类对象调用方法时,调用的是子类的方法,而不是父类中被重写的方法,要想调用父类中被重写的方法应使用super关键字。

多态的实现方式:

 **重写,接口,抽象类和抽象方法。**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值