继承:
简单说继承就是在一个现有类的基础上,通过增加新的方法或者是修改现有的方法(即重写)的方式,产生一个新的类型。同时继承是Java面向对象三大特征:封装,继承,多态之一。这里要注意的是我们如果写一个类,若果没有明确标明继承于哪个类,java会默认继承于java.lang.Object类(基类或者父类,超类)。
可以把JAVA的类分为下三种:
1.类:用class定义且不含抽象方法的类。
2.抽象类:用 abstract class定义的类,可以含有也可以不含有抽象方法
3.接口:使用interface定义的类
这三种类型之间的继承规律:
a.类可以继承(extends)类,可以继承抽象类,可以继承接口
b.抽象类可以继承(extends)类,可以继承抽象类,可以继承接口
c.接口只能继承(extends)接口
以上三条规律同时还要遵守这些约束:
1.类和抽象类只能继承一个类,或者只能继承一个抽象类,注意两者是互斥的,即要么继承一个类,要么继承一个抽象类
2.类,抽象类和接口在继承接口的时候,不受数量限制。要注意的是类在继承接口的时候,他必须实现接口中的所有抽象方法
3.类继承抽象类和接口的时候,必须实现父类抽象类或者接口中的所有抽象方法
继承的好处就是将原有类模块化,可以重复的使用,提高开发效率。
多态:
继承是多态的实现基础。多态其实通俗点将就是一种类型(例如游戏),表现出的不同形态(例如游戏可以是贪吃蛇,可以是俄罗斯方块,还是以是英雄联盟等等)。将一个方法调用这个方法所属的类关联起来叫绑定,分前期绑定和后期绑定两种:
1.前期绑定:在程序运行前进行绑定,又叫静态绑定。比如static方法和final方法,注意,这里也报告private方法,因为他是隐式final。
2.后期绑定:在运行时根据对象的类型进行绑定,通过方法调用实现,因此叫做动态绑定。除类前期绑定以外的方法都叫后期绑定。
多态给我们的好处就是消除了类之间的耦合关系,是程序更容易扩展。
重载和重写:
这俩个都是针对鱼方法的概念。我们在此先了解下什么叫做方法的型构(即方法签名,这是另一种说法),型构是指方法的组成结构,包括方法的名称和参数,涵盖类参数的数量,类型以及出现的顺序,这里注意的是和方法的返回值类型,访问修饰符(public,private等)以及abstract,static,final等无关。
那么什么是重载和重写了:
a.重写(overriding),是之在继承的情况下,子类定义了和父类相同型构的方法(即方法名和参数都相同),这样我们就说子类将父类的方法重写了。
b.重载(overloading),是指在同一类中定义的一个具有相同方法名,但是参数不用的方法。因为在同一个类中是不允许创建多余一个具有相同型构的方法的。
这里要注意的是:构造器可以被重载么,答案当然是可以的,因为构造器实际上另一种说法叫做构造方法。,虽然说构造器没有返回值,但其实可以理解为构造器返回的其实是新创建的对象的实例,个人以为这俩句话并没扫描冲突。但是子类却不能重写父类的构造器,因为构造器不能被继承,而重写是在继承的基础上的,都不能继承类,怎么能重写了?