基础知识——java 类的继承、重载与重写

继承

一、extends关键字来表示继承关系。当创建一个类时,总是在继承,如果没有明确指出要继承的类,就总是隐式地从根类Object进行继承;

二、子类继承父类的成员变量

  1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;

  2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

  3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。

三、子类继承父类的方法

  1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;

  2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

  3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。

  注意:隐藏和覆盖是不同的。隐藏是针对成员变量和静态方法的,而覆盖是针对普通方法的。

四、构造器

  子类是不能够继承父类的构造器,但是要注意的是,如果父类的构造器都是带有参数的,则必须在子类的构造器中显示地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类有无参构造器,则在子类的构造器中用super关键字调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。

(父类的构造器调用以及初始化过程一定在子类的前面)

重载(overload)与重写(override)

一、重载

函数的方法参数个数或类型不一致,称为方法的重载。

从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系。同时,重载可以发生在同一个类中也可以发生在继承关系中。

二、重写

重写也被称为覆写。对一个方法的重写必须发生在具有继承关系的两个类中,即子类对父类方法的重写。它要求两个方法的参数个数和类型以及返回值类型都必须一致,这样才称为方法重写。

(子类对父类的方法覆写对权限有要求,子类方法的访问权限必须大于或等于父类方法的访问权限。也就是说如果父类方法的访问权限是default,那么子类必须是default或者public,如果父类方法是public访问权限,那么子类就只能是public访问权限了。父类方法如果是private,根据JAVA的封装性原则,private是不让其它任何类访问的,所以此时子类不能对父类的private方法进行覆写。)

三、总结


比较项目


重载


覆写/重写


英文名


Overload


Override


函数签名


只要求函数的参数个数或类型不一致,对返回值没要求


函数的参数个数、类型、返回值都必须完全一样。


发生地方


同一个类或者具有继承关系的两个类中


只能发生在继承关系的两个类中


访问权限


没有限制


子类覆写方法的访问权限必须大于或等于父类的方法的访问权限

参考:http://www.cnblogs.com/kuillldan/p/5905572.html

时间: 2024-07-30 22:38:23

基础知识——java 类的继承、重载与重写的相关文章

C#语言基础知识(1):C#中关于重载和重写

Overload:重载就是在同一个类中,方法名相同,参数列表不同.参数列表不同包括:参数的个数不同,参数类型不同. 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace OverLoading 6 { 7 class Program 8 { 9 public static int max(int i, int j) //静态方法 10 { 11 if (i > j) 12 re

【Java菜鸟学习总结】Java基础知识(类)

目录 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 2.类 3.static关键字 4.final关键字 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 1.1.面向对象编程的特征 面向对象编程(OOP)的三大特征 { 封装; 继承; 多态; } 1.2.类与对象概述 类与对象是面向对象的核心概念. 类与对象 { 类; // 类是对于一类事物的描述,是抽象的.概念的定义. 对象; // 对象是实际存在的该类事物的每个个体,因而也别称为实例. } 2.类 2.

java类的继承

继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是在继承,因为在java语言 中,java.lang.object类是所有类最根本的基类(或者叫父类.超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么java 就会默认为它是继承自object类的. 1.为什么需要使用继承? 提高代码的重用性. 提高程序的扩展性. 2.Java继承的语

编程基础知识——Java JNI开发流程(2)

android中使用jni调用本地C++库 android平台上的本地库文件后缀 .so.类似windows上的dll文件. 要在android上使用jni,首先需要下载android ndk. 操作步骤,正常建立android工程,然后在android工程那里右键,属性,选择Android Tools -> Add Native Support.就可以为android工程增加本地库支持. 添加支持后的android工程,会增加jni目录,C++代码就写在这个目录里. 新建一个类,并且使用nat

编程基础知识——java类加载

java类加载 先来看一段小程序: package com; public class Main1 { static { System.out.println("1111") ; } public static void main(String[] args) { System.out.println("2222") ; } } 输出结果为: 1111 2222 其中static的执行时机就是class被 classloader加载的时候执行. 这有什么用?看下面代

Java 类设计----Java类的继承

Java类的继承 为描述和处理个人信息,定义类Person: public class Person { public String name; public inat age; public Date birthDate; public String getInfo() {...}} 为描述和处理学生信息,定义类Student: public class Student { public String name; public int age; public Date birthDate; p

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

Java 语法 索引 ----- 继承(Inheritance) 和重写(Overriding)

// Superclass (parent class) class Fruit{ public String flavor; } // Subclass (child class) class Apple extends Fruit { public String variety; } //downcasting Apple a = new Apple(); Fruit f = a; Apple c = (f instanceof Apple) ? (Apple)f : null; 重写 cl

java学习--基础知识进阶第二天--继承、匿名对象&final、抽象类

今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 1.2 继承的格式&使用  在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 1.2.1 案例代码一: package com.itheima_01; /* * 继承:多个类有共同的成员变量和成员方法,抽取到另外一个类