`
JAVA那点事
  • 浏览: 17959 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类

JAVA类的继承学习笔记

阅读更多

JAVA类的继承学习笔记——稻草人

学习资料:《Java就业培训教程》

 

Java类继承的特点

1.Java只支持单继承,不允许多继承,一个子类只能有一个父类,不允许一个类直接继承多个类,但一个类可以被多个类继承,,即是类X不可以既继承类Y又继承类Z。

2.可以有多继承,如:类B继承了类A,类C又可以继承类B,那么类C也间接继承了类A。

3.子类继承父类的所有成员变量和成员方法,但不继承父类的构造方法(构造方法是特殊的成员方法,他与类名相同,不返回结果也不加void返回值)。

4.在子类的构造方法中可以使用super()调用父类的构造方法,如下:

public class Student extends Person
{
	public Student(String name,int age,String school)
	{
		super(name,age);
		this.school = school;
	}
}

 

5.如果子类没有显式地调用父类构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法。也就是,在下面的例子中,写不写super()语句效果是一样的:

public class B extends A
{
	public B ()
	{
		super();//写不写,效果时一样的
	}
}

 

如果子类构造方法没有显式地调用父类构造方法,二父类中又没有无参数的构造方法(需要再次说明:如果父类没有显式地定义任何构造方法,系统将提供一个无参数的构造方法,相当于父类中又无参数的构造方法),则会编译出错。所以,通常情况下只要定义了有参数的构造方法,一般还要再定义一个无参数的构造方法。

/**
 * 测试类的继承特性
 * @author Administrator
 *
 */
class Person
{
	public String name;
	public int age;
	public Person(String name,int age)
	{
		this.name = name;
		this.age = age;
	}
	public Person() {}//如果这个构造函数不写,则编译会出错
	public void getInfo()
	{
		System.out.println("name:"+name+" , age"+age);
	}
}
class Student extends Person{
	public void study()
	{
		System.out.println("好好学习,天天向上");
	}
	public static void main(String arg[])
	{
		Person p = new Person();
		p.name = "Person";
		p.age = 33;
		p.getInfo();
		
		Student s = new Student();
		s.name = "student";
		s.age = 10;
		s.getInfo();
		s.study();	
	}
}

 

子类对象实例化过程

1.分配成员变量的存储空间,并进行默认的初始化,就是用new关键字产生对象以后,对成员变量用相应的关系对对象中的成员变量进行初始化赋值。

2.绑定构造参数。

3.如果有this()调用,则调用相应的重载构造方法,(被调用的冲在构造方法又从步骤2开始执行这些流程),被调用的重载构造方法结束后回到当前的构造方法,然后直接跳到步骤6执行。

4.显式或隐式追溯调用父类的构造方法(一直到Object类为止,Object是所有Java类的最顶层父类),父类的构造方法又从步骤2开始对父类执行这些流程,父类构造方法执行结束后,回到当前的构造方法,当前构造方法继续往下执行。

5.进行实例变量的显式初始化,也就是执行在定义成员变量时就对其进行赋值的语句。String school = "NIT";

  6.执行当前构造方法的方法体里面的程序代码。

 

覆盖父类的方法

*覆盖的方法必须和被覆盖的方法具有相同的方法名称,参数列表和返回值类型。

 

*覆盖方法时,不能使用比父类中被覆盖的方法更加严格的访问权限。

分享到:
评论

相关推荐

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    java集合类学习笔记.doc

    ### Java集合类学习笔记知识点详解 #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,容器是用于存储和管理对象集合的重要工具。当我们处理大量的对象时,比如存储多个员工的信息,仅仅依赖于基本的...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    JAVA程序设计学习笔记.pdf

    JAVA 程序设计学习笔记 JAVA 程序设计学习笔记是一个详细的学习笔记,涵盖了 JAVA 程序设计的基本概念、语言特征、类库、环境设置、安装等方面的知识点。 1. JAVA 程序设计的基本概念 JAVA 程序设计是一种基于...

    JAVA JDK6学习笔记

    Java JDK6学习笔记是针对Java编程语言初学者和进阶者的一份宝贵资源,它涵盖了Java的基础语法,并通过经典且易于理解的实例进行讲解。在本文中,我们将深入探讨Java JDK6中的关键概念和特性,以帮助你更好地理解和...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...

    Java学习笔记(必看经典).pdf

    本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...

    JavaJDK6学习笔记(林信良著)

    《Java JDK6学习笔记》是由林信良编著的一本针对Java初学者和进阶者的学习资料,书中详细讲解了Java编程语言与JDK6版本的相关知识。这本笔记不仅包含传统的Java学习内容,还结合了作者独特的见解和实践经验,为读者...

    Java学习笔记——良葛格

    "Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...

    Java入门学习笔记

    这份"Java入门学习笔记"涵盖了imooc网站上Java入门课程的三个赛季的内容,旨在为初学者提供一个全面的学习资源。 笔记的第一部分是"Java入门第一季学习笔记",它可能包括Java的基础概念和语法。这部分可能会讲解...

    韩顺平编写的java学习笔记(全)

    ### 韩顺平编写的Java学习笔记概览 #### Java平台分类与运行机制 - **J2SE(Java 2 Platform, Standard Edition)**: 标准版Java开发平台,适用于桌面应用程序开发。 - **J2EE(Java 2 Platform, Enterprise ...

    Java基础尚硅谷宋红康学习笔记

    【Java基础】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。Java以其“一次编写,到处运行”的特性...通过深入学习和实践,你可以不断提升自己的Java编程能力。

    Java学习笔记PPT

    这份"Java学习笔记PPT"是针对Java2版本的学习资源,旨在帮助初学者或有一定基础的开发者深入理解Java的核心概念和应用。 在Java学习的初期,掌握基本语法是至关重要的。Java的语法与C++有诸多相似之处,但更加强调...

    JAVA学习笔记 林信良

    此外,《JAVA学习笔记》还涵盖了集合框架,包括ArrayList、LinkedList、HashSet、HashMap等各种集合类的使用,以及泛型、迭代器和流API的应用。这些内容对于处理数据和实现复杂算法至关重要。 对于多线程编程,书中...

    Java开发学习笔记

    Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...

    Java的继承的学习笔记

    Java的继承是面向对象编程的一个核心概念,它允许一个类(子类)从另一个类(父类)继承特性,包括属性和方法。这使得子类能够重用和扩展父类的功能,同时保持代码的组织性和可维护性。在Java中,继承主要遵循以下...

    JAVA 多线程学习笔记

    这篇学习笔记将深入探讨Java多线程的核心概念、实现方式以及相关工具的使用。 一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,...

    Java并发编程学习笔记.rar

    这本"Java并发编程学习笔记"可能是作者在深入研究Java并发特性、工具和最佳实践过程中积累的心得体会。下面,我们将根据这个主题,探讨一些关键的Java并发编程知识点。 1. **线程与进程**:在多任务环境中,线程是...

    java实战经典学习笔记

    ### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...

Global site tag (gtag.js) - Google Analytics