`
sean2012
  • 浏览: 46149 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

如何继承

阅读更多
继承

一、为什么需要继承?

一句话——不要浪费时间来做重复的事情。

二、如何继承?

重点:
1)继承关键字——类的继承extends ,接口的实现implements.
2)每个类(class)只能继承一个类(class),但可以实现多个接口(interface).
3)实现一个接口时,需要重写父接口中的所有方法.

实例:
package TextExtends;
/**
 * 学生类
 * @author Sean 2012 - 8
 */
public class Student {
	private String number; //学号
	private String name ; //姓名
	private int age;  //年龄
	private double score; //分数
	/**
	 * 第一个构造方法
	 * @param number
	 * @param name
	 * @param age
	 * @param d
	 */
	public Student(String number, String name, int age, double d) {
		this.number = number;
		this.name = name;
		this.age = age;
		this.score = d;
	}
	/**
	 * 输出学生信息
	 */
	public void print(){
		System.out.println("学号:"+number+"  姓名:"+name+"  年龄:"+age+"  分数:"+score);
	}
}

package TextExtends;
/**
 * 大学生类
 * @author Sean 2012 -8
 */
public class CollegeStudent extends Student{
	public CollegeStudent(String number, String name, int age, double d) {
		super(number, name, age, d);
	}
	/**
	 * 大学生参加四级考试
	 */
	public void CET_4(){
		System.out.println("大学生要参加四、六级考试!!!");
	}
	public void print(){
		System.out.println("父类的方法被重写了!!!");
	}
}

package TextExtends;
/**
 * 主程序类
 * @author Sean 2012 - 8
 */
public class Master {
	/**
	 * 主程序入口
	 * @param args
	 */
	public static void main(String[] args) {
		/**
		 * 创建三个学生信息
		 */
		Student student1 = new Student("000001", "张三", 18, 95.542);
		CollegeStudent student2 = new CollegeStudent("000002", "李四",19, 93.432);
		Student student3 = new CollegeStudent("000003","王五",17, 98.242);
		/**
		 * 显示学生信息
		 */
		student1.print();
		student2.print();
		student3.print();
		/**
		 * 访问大学生类中的方法
		 */
		student2.CET_4();
	}
}


显示结果:
学号:000001  姓名:张三  年龄:18  分数:95.542
父类的方法被重写了!!!
父类的方法被重写了!!!
大学生要参加四、六级考试!!!


三、继承到了什么?

分析:
1、 从上例中可以看到CollegeStudent类继承了Student类,即CollegeStudent定义的对象就拥有了Student类中的所有属性;并且在CollegeStudent类中加入一个自己的成员方法。
2、 透过定义CollegeStudent对象过程中发现,允许父类定义子类,子类定义子类,父类定义父类,但就是不允许CollegeStudent student4 = new student("000003","王五",17,89.78);也就是说不允许用子类来定义父类。
3、 当父类中的成员方法或变量的访问修复符为private时,在主类中定义的对象不能直接使用,即不能被继承。
4、 要使用子类的方法,只能通过子类定义子类来实现;同样要调用父类中没有的方法,可以通过在子类中重新定义新方法。
5、 当父类定义父类时,无法访问到子类中的成员变量和方法,只能通过父类定义子类,或子类定义子类的方式才能实现。
6、 当父类定义子类,或子类定义子类时,子类中重写了父类的方法,则调用该方法时默认调用子类中重写后的方法。
7、 父类中的构造方法是不能被继承的,子类要使用父类的构造方法只能通过super方法来实现。
分享到:
评论

相关推荐

    Qt5类继承关系图_qt5类继承关系图_QT5_

    在Qt5中,类的继承关系是其核心部分,因为它定义了组件之间的层次结构,使得代码重用和模块化成为可能。"Qt5类继承关系图"是一个重要的参考资料,它直观地展示了Qt5库中各个类之间的关系,有助于开发者理解和使用Qt5...

    Java面向对象之继承练习题.doc

    【Java面向对象之继承练习题】的解析与详解: 1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关...

    c++抽象类继承

    根据给定的信息,我们可以深入探讨C++中的抽象类与继承机制。下面将详细介绍如何通过抽象类和继承在C++中实现特定的功能。 ### 概述 在这个示例中,我们有三个具体的类:`Student`、`Lecture` 和 `Module`,它们都...

    Java 实现继承实例代码

    在Java编程语言中,继承是面向对象特性之一,它允许我们创建一个类(子类或派生类)作为现有类(父类或基类)的扩展。这种设计模式有助于代码重用,使得子类可以继承父类的属性和方法,并且可以添加新的功能或覆盖已...

    继承窗体的设计C#源码

    在C#编程中,"继承窗体的设计"是面向对象编程的一个重要概念,它允许我们创建一个新的窗体类,该类基于已有的窗体类,从而可以复用和扩展功能。这种方式大大提高了代码的可重用性和可维护性。本文将深入探讨C#中继承...

    WPF窗口直接类继承

    "WPF窗口直接类继承"这个主题涉及到的是如何通过继承自定义窗口类,以实现更灵活和模块化的代码结构。 在标准的WPF应用中,窗口通常由`System.Windows.Window`类创建。然而,当项目变得复杂,多个窗口需要共享相同...

    c++程序设计 继承与派生实验(二)

    在C++编程语言中,继承和派生是面向对象编程的重要概念,它们允许我们构建复杂的类层次结构,实现代码重用和多态性。在这个“C++程序设计 继承与派生实验(二)”中,我们将深入探讨这三个关键知识点:类的派生与...

    java基础继承封装多态

    本资源摘要信息将对 Java 基础知识点进行总结,涵盖继承、封装、多态等概念,并对面向对象的设计、数据库设计模式等进行讲解。 继承 继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是...

    QT类继承图

    QT类继承图是Qt框架中的一个重要组成部分,它展示了Qt库中各类之间的层次结构,帮助开发者理解和使用Qt的各种组件。在编程领域,类继承是面向对象编程的一个核心概念,通过继承,一个类(子类)可以获取另一个类...

    C++编程思想--多重继承

    【C++编程思想--多重继承】 多重继承是C++中的一种特性,允许一个类可以从多个基类中继承属性和行为,从而实现代码复用和设计灵活性。这种机制使得类能够结合多个基类的功能,但同时也引入了一些复杂性和潜在的问题...

    10丨理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?1

    其中,“组合优于继承”是一条广为流传的原则,意味着在设计软件时,我们应该优先考虑使用组合(Composition)而不是继承(Inheritance)。这条原则的提出主要是为了解决继承带来的潜在问题,如代码的可维护性、可...

    C++类继承内存布局详解图(一目了然)

    "C++类继承内存布局详解图" C++类继承内存布局是一种复杂的机制,涉及到类的继承、成员变量的访问、成员函数的访问、虚函数调用、强制转换到基类或虚基类等多个方面。在本文中,我们将从C结构的布局开始,逐步介绍...

    WPF可继承窗体

    在Windows Presentation Foundation(WPF)中,创建可继承的窗体是一种常见的做法,尤其是在开发大型应用时,可以提高代码的重用性和维护性。标题"**WPF可继承窗体**"指的是如何设计一个基本的WPF窗口,使其能够作为...

    Java中extends类的继承

    在Java编程语言中,`extends`关键字用于实现类的继承机制。类的继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。下面将详细探讨`extends`...

    关于超市购物的java类的继承实例。

    在Java编程语言中,类的继承是面向对象编程的一个核心概念。这个实例是关于如何在超市购物场景下应用继承机制的。在这个系统中,我们有以下几个关键类:`ShoppingCar`(购物车)、`Database`(数据库)、`McBean`...

    C++实验五 继承与派生的应用 课程 实验报告

    实验报告的主题是“C++实验五 继承与派生的应用”,主要涵盖了C++面向对象编程中的核心概念,包括继承和派生。本实验旨在帮助学生深入理解和掌握以下几个关键知识点: 1. **继承和派生的含义**:继承是面向对象编程...

    C++继承与多态例子

    在C++编程语言中,继承和多态是面向对象编程(OOP)的两个核心概念。继承允许我们创建一个新类(子类),它继承了另一个类(父类)的属性和方法,从而实现了代码的重用和扩展。多态则是指同一种行为在不同对象上表现...

    C++面向对象程序设计习题继承与派生.pdf

    "C++面向对象程序设计习题继承与派生.pdf" 继承是面向对象程序设计中的一种重要机制,它允许一个类继承另一个类的属性和行为特征。通过继承,新类可以从现有类中获得特征,从而达到代码复用的目的。在C++中,继承...

    14 继承(一)(整个继承树映射到一张表)

    标题“14 继承(一)(整个继承树映射到一张表)”揭示了我们今天将探讨的主题——如何在数据库中通过ORM(对象关系映射)工具如Hibernate处理类的继承关系。 在Hibernate中,当一个类继承体系映射到数据库时,有几种...

    C++继承与派生

    ### C++继承与派生详解 #### 5.1 继承与派生的概念 **5.1.1 为什么要使用继承** 继承是面向对象编程中的一个核心概念,它允许新类从现有类那里获得其属性和行为。这种机制不仅提高了代码的复用性,还增强了软件的...

Global site tag (gtag.js) - Google Analytics