继承

继承inherit

从已有的类派生出新类叫做继承

设计这些类来避免冗余并是系统更易于理解和易于维护

 

如果从a类继承得来的b类

称a类为超类(super class)、父类(parent class)或基类(base class)

称b类为次类(subclass)、子类(child class)、扩展类(extended class)或派生类(derived class)

 

子类可以总父类继承可访问的数据域和方法,还可以添加新的数据域和新方法

 

Public class  子类extends父类

 

继承是用来为关系(is-a)建模的,不要仅仅为了重用方法这个原因而盲目的扩展一个类

Java 不允许多重继承,一个java类只可能直接继承一个父类,只能单一继承

 

Super

调用父类的构造方法

super()

super(参数)

 

构造方法可用来构造一个类的实例,父类的构造方法不能被子类继承,只能从子类的构造方法中用super调用

 

调用父类的方法

这个调用必须是构造方法的第一行

This 不能与super同时使用

 

覆盖

子类中有与父类相同名字的方法,则会用子类的方法

覆盖的修饰符只能比父类的级别高

 

子类继承父类时,自动调用父类的构造函数

子类的构造函数系统自动添加super()

子类继承父类的所有东西,所以子类在对象实例时,会访问父中的构造函数

 

 

Final

最终修饰符,可以修饰类、属性、方法

final 修饰类的时候, 此类不可被继承, 即 final 类没有子类。 

final 保证用户调用时动作的一致性,可以防止子类覆盖情况的发生

 

final 定义常量 (注意在 JAVA 命名规范中常量需要全部字母都大写) 

常量的地址不可改变,但在地址中保存的值(即对象的属性)是可以改变的

 

final 定义方法:这样的方法为一个不可覆盖的方法。 

Public final void print(){}

 

如果一个方法前有修饰词 private 或 static,则系统会自动在前面加上 final。即 private 和 static 方法默认均为 final 方法。 

final 并不涉及继承,继承取决于类的修饰符是否为 private、default、 protected 还是 public。

是否继承取决于这个方法对于子类是否可见。

 

 

20161115 修订-------------------------------------------------------------------------

继承:继承是通过关键字extends体现的。
继承的格式:
 class 类名1 extends 类名2{ 
 }
继承要注意的事项:
 1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承。
 2. 父类私有的成员不能被继承。
 3. 父类的构造函数不能被继承。
 4. 创建子类对象时默认会先调用父类无参的构造函数。 
 调用父类 的构造方法是可以初始化从父类继承下去的属性的。
  
super关键字:
super关键字代表了父类空间的引用。
super关键字的 作用:
 1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。
 2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。
super关键字调用父类构造方法要注意的事项:
 1. 如果在子类的构造方法上没有指定调用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()语句。
 2. super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。
 3. super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。
super关键字与this关键字的区别:
 1. 代表的事物不一致。
   1. super关键字代表的是父类空间的引用。 
   2. this关键字代表的是所属函数的调用者对象。
 2. 使用前提不一致。
   1. super关键字必须要有继承关系才能使用。
   2. this关键字不需要存在继承关系也可使用。
 3. 调用构造函数的区别:
   1. super关键字是调用父类的构造函数。
   2. this关键字是调用本类的构造函数。
   
目前的问题:父类的功能无法满足子类的需求。
方法重写的前提: 必须要存在继承的关系。
方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。
什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。
方法重写要注意的事项:
 1.方法重写时, 方法名与形参列表必须一致。
 2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
 3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。
 4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。
   Exception(最坏)
   RuntimeException(小坏)

方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。
方法重载的要求
 1. 函数名要一致。
 2. 形参列表不一致(形参的个数或形参 的类型不一致)
 3. 与返回值类型无关。 
 
instanceof 关键字
instanceof关键字的作用:判断一个对象是否属于指定的类别。
instanceof关键字的使用前提:判断的对象与指定的类别必须要存在继承或者实现的关系。
instanceof关键字的使用格式: 对象  instanceof 类别
instanceof关键字的作用: 目前没用。但是后天我们学习 到了多态之后就非常有用。
一般我们做强制类型转换之前都会使用该关键字先判断一把,然后在进行转换的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值