java类的继承

继承就是在一个现有类型的基础上,经过增长新的方法或者重定义已有方法(重写)的方式,产生一个新的类型。继承是面向对 象的三个基本特征——封装、继承、多态的其中之一,咱们在使用java时编写的每个类都是在继承,由于在java语言 中,java.lang.object类是全部类最根本的基类(或者叫父类、超类),若是咱们新定义的一个类没有明确地指定继承自哪一个基类,那么java 就会默认为它是继承自object类的。java

  1.为何须要使用继承? 提升代码的重用性。 提升程序的扩展性。ide

  2.Java继承的语法格式 Java继承的关键字:extends 格式: public class 类名(子类,派生类,超类) extends 类名(父类,基类) { } ?注意: Java类的继承是单继承。函数

  3.子类继承到了父类的哪些属性和方法 子类继承父类后,子类继承到了父类全部的属性和普通方法。构造方法没有被子类继承。 能不能调用方法或属性,是由于访问修饰符的关系来决定的。 public全部的地方均可以调用 protected当前包下和有继承关系不一样包的子类中。 默认的只能在当前包下调用 private只能在当前类中。 子类能本身定义属性和方法吗? 能够而且子类能够拥有比父类更多的属性和方法对象

  4.方法重写 方法重写的条件 必需要存在继承关系 方法的返回值类型,方法名,参数个数,参数类型,参数顺序都必需要和父类的彻底一致。 子类重写方法时,方法的访问修饰符能够大于或者等于父类方法的访问修饰符。 在调用方法的时候是否会调用错方法? 建立的对象是不是子类的(new 构造方法()) 若是是子类的构造方法建立的对象,那会优先执行子类的方法,子类没有才会执行父类的方法。 重载和重写的区别: 重载和重写都是针对方法的概念,在弄清楚这两个概念以前,咱们先来了解一下什么叫方法的型构。型构就是指方法的组成结构,具体包括方法的名称和参数,涵盖 参数的数量、类型以及出现的顺序,可是不包括方法的返回值类型,访问权限修饰符,以及abstract、static、final等修饰符。好比下面两个就是具备相同型构的方法: public void method(int i string s) { // do something } public string method(int i string s) { // do something } 而这两个就是具备不一样型构的方法: public void method(int i string s) {// do something } public void method(string s int i) { // do something } 重载: 英文名是overload,是指在同一个类中定义了一个以上具备相同名称,可是型构不一样的方法。在同一个类中,是不容许定义多于一个的具备相同型构的方法的。 方法名相同,但参数类型、数量或顺序必有一不一样。 在同一类中或有继承关系的类中都可重载。 重写: 英文名是override,是指在继承状况下,子类中定义了与其基类中方法具备相同型构的新方法,就叫作子类把基类的方法重载了。这是实现多态必须的步骤。 方法名、参数类型、数量、顺序必须彻底相同,访问修饰符能够不一样,但子类必须大于或等于父类。只发生在有继承关系的类中。继承

  5.自动转型 方向:由子类自动转为父类 前提:两个对象所在的类存在继承关系 语法: [1]直接自动转型 父类名 对象名 = new 子类构造函数(); Student stu =new UNStudent(); [2]在方法中进行自动转型 子类名 对象名 = new 子类构造函数(); UNStudent unstu =new UNStudent(); teach(unstu); 访问修饰符 返回值类型 方法名(父类名 参数名){ } public void teach (Student stu){ } 没必要管建立对象左边的部分,只要看右边new的构造函数是子类仍是父类, 若是是子类,则优先调用子类的方法。 注意:要使用自动转型,必需要存在继承关系。 格式: 父类名 对象名 = new 子类构造方法(参数值,...); Student un = new UNStudent(); un.play(); 使用自动转型后,不能调用子类自定义的方法; 由于Java编译时,只会根据对象名的类型去查找方法是否存在,若是存在则经过编译,若是不存在则报错。 实例:一个大学老师,能够教大学生,也能够教初中生,高中生,小学生 那么,对于这个教学的方法咱们就能够只写一次。而后在使用时进行相应的自动转换一达到教学各类不一样阶层学生的目地。 对于咱们来讲,使用自动转型,那么就只能调用父类中已经定义过的方法。 对于这个转型,咱们有2种方法: 一: 父类名 父类对象名 = new 子类构造函数();二:父类名 父类对象名 = new 子类构造函数() 子类名 子类对象名 = new 子类构造函数(); public 返回值类型 方法名(父类类名 父类对象名){ 父类对象名.方法名(); } 方法名(父类对象名); 方法名(子类对象名);可是,自动转型也是有明显缺点的,若是使用自动转型,则没法调用子类的独有方法。由于计算机比较笨,它只能按照固定的已经设定好的方式去执行,Java在编译的时候,是根据对象名的类型去编译程序,这个时候在子类中,是找不到相应的方法的,因此编译出错了。string

  6.多态 多态是由方法重载,继承,方法重写,自动转型等技术的组合。编译

                                                                                                                            技术分享:www.kaige123.comclass

相关文章
相关标签/搜索