`

java类的继承

阅读更多
 

 .                                                    类的继承

1继承的概念

面向对象程序设计中,可以在已有类的基础上定义新的类,而不需要把已有类的内容重新书写一遍,这就叫做继承。已有的类称为基类或父类,在此基础上建立的新类称为派生类或子类。

运用继承,父类的特性不必再重新定义,就可以被其它类继承。

继承是面向对象编程技术的一个重要机制。较好地解决了代码重用问题。

任何一个类都可以作为基类,从这个基类可以派生出多个子类,这些派生的类不仅具有基类的特征,而且还可以定义自己独有的特征。

定义继承的形式为:

[类修饰符]   class 类名  [extends    父类]

{

    类体

}

两个类之间的继承关系由extends关键字指明

2 继承的类成员访问权限

private :只允许该成员自身所属的类访问,不允许子类访问;

默认修饰符:允许定义它的类自身以及处于同一个包中的其它类访问(包括子类);不允许不同包中的子类访问;

protected :保护成员,允许定义它的类自身以及处于同一个包中的其它类访问(包括子类);还允许不同包中的子类访问。

public:允许所有类访问该成员;

在同一包中,子类可以访问父类除私有成员(private修饰的)之外的所有属性和方法。

3继承中构造函数的调用

1在创建一个子类对象时,系统通过子类的构造函数首先调用父类的构造函数,然后执行子类构造函数中的其余语句;

(2)子类构造函数使用“super()”调用父类构造函数,super调用要作为子类构造函数的第一条语句

This 与 super的区别

this

表示当前活动对象本身。任何一个活动的对象都有一个默认的this指针指向自己。

使用格式:

                this.成员变量名;

        this.成员方法名;

super

表示当前活动对象的直接父类对象。

使用格式:

        super.成员变量名;

        super.成员方法名;

        super(传递给父类成员变量的参数)

<!--EndFragment-->

4   方法重写 
 1.实现方法重写的条件:
  1.必须要存在继承关系。
  2.方法的返回值数据类型,方法名,参数个数,参数类型,参数顺序必须要完全一致。
  3.子类在重写方法时,访问修饰符的范围可以大于或者等于父类方法的访问修饰符。

 2.实现方法重写后,怎么调用方法呢?
  当实现方法重写后,如果你创建的对象是子类的对象,那么会优先调用子类的方法,如果子类没有改方法,才会执行父类中定义的方法。
 
   

5.自动转型
 自动转型的条件:
  必须要存在继承关系。
  
 自动转型的格式:
  格式一:
   父类  对象名;
   对象名 = new 子类名(实参,...);
   父类  对象名  = new 子类名(实参,...);
   
  格式二:
   第三方类中的方法
   public void method(父类 对象名){
    //调用的方法必须要在父类中存在
   }
   创建对象
   父类  对象名A  = new 子类名(实参,...);
   子类  对象名B  = new 子类名(实参,...);
   
   调用方法
   method(对象名A);
   method(对象名B);

 
 
 自动转型的优点和缺点:
  缺点:
  Java在编译程序时,只会根据对象名的类型,去查找是否存在该方法,如果存在,则通过编译,如果不存在则报错。
  
  优点:
  实现多态,减少重复的代码。

/**
 * 
 * @author 123
 *
 */
public class Teacher 

{
	//定义老师的熟性
	private String name;//名字属性
	private String teName;
	private String time;
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return name;
	}
	
	

	public void Text(project pro) {
		System.out.println(this.teName +"要"+this.name+"这个科目要考试"+"考试时间为"+this.time);
		// TODO Auto-generated method stub
		
	}

}

 

/**
 * 
 * @author 123
 *
 */
public class wproject extends project
{
	  
	//设置文科考试的方法

	public void Test()
	{
		
		 System.out.println(this.teName +"不要"+this.name+"这个科目考试");

	}

}

 

public class Testmain1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	     //实例化一个科目的对象
		project pro =new project();
		pro.name="math";//科目的名字叫math
	
		pro.time=45;//科目的时间是45
		pro.teName="liu";//老师的名字
		pro.Test();//调用科目考试方法
		
		project wp = new wproject(); //实例化一个子类的对象文科对象
		
	wp.name="chinese";//科目的名字
	wp.teName="wen";//科目的老师
	wp.Test();//文科的考试方法
	Teacher te= new Teacher();//实例化老师的类
	te.setName("huang");//老师的名字
	 te.Text(pro);//调用方法
	
		
		
		
		

	}

}

 

/**
 * 
 * @author 123
 *
 */
public class Teacher 

{
	//定义老师的属性
	private String name;//名字属性
	private String teName;//老师名字
	private String time;
          //设置和获取名字	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return name;
	}
	
	
          //测试方法
	public void Text(project pro) {
		System.out.println(this.teName +"要"+this.name+"这个科目要考试"+"考试时间为"+this.time);
		// TODO Auto-generated method stub
		
	}

}

 

分享到:
评论

相关推荐

    Java类继承初始化顺序

    在Java编程语言中,类继承是面向对象设计的一个核心特性,它允许我们创建一个新类(子类)作为现有类(父类)的扩展。当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、...

    java类继承源码

    在Java编程语言中,类继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的重用和扩展。本资源包含了一份关于Java类继承的源码示例,非常适合...

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

    1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关类的基类。 2. **构造方法**:构造方法用于...

    java中继承与多态的题目

    Java 中继承与多态的题目 本资源摘要信息是关于 Java 中继承和多态的题目,涵盖了面向对象编程的基本概念和继承机制的应用。 继承的概念 继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)...

    Java类继承代码示例,定义Person类,Student类继承自Person类,并添加其他信息

    说明: 这是一个包含两个类的Java程序代码示例,Person类表示一个人的基本信息,包括姓名、年龄和爱好列表;Student类表示一个学生对象,继承自Person类,并添加了学生ID和专业名称的信息。主程序入口Main类中创建了两...

    Java 实现继承实例代码

    这个例子展示了Java继承的核心概念,包括: 1. 使用`extends`关键字创建子类。 2. 访问和覆盖父类的方法。 3. 添加子类特有的方法。 4. 多态性的应用。 通过学习这个实例,开发者能够更好地理解和运用Java的继承...

    Java类继承关系中的初始化顺序实例详解

    Java类继承关系中的初始化顺序实例详解 Java类继承关系中的初始化顺序是Java编程语言中的一個重要概念。该概念关系到类的初始化顺序,静态成员变量的初始化顺序,普通成员变量的初始化顺序等。在本文中,我们将详细...

    Java--类的继承

    在Java编程语言中,类的继承是面向对象编程的一个核心概念,它允许我们创建新的类(子类)基于已存在的类(父类或超类)。继承提供了代码的复用性,使得子类可以共享父类的属性和方法,同时还可以添加自己的特定功能...

    java继承类实例

    在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...

    南邮java实验二类继承.doc

    Java 类继承实验报告 本实验报告的主要目的是掌握 Java 中的类定义、对象创建和使用、类继承的概念,以及派生类的定义。实验中,我们将定义一个名为 MyRectangle 的类,代表矩形,并派生出一个名为 MyCuboid 的子类...

    java类和对象继承多态性

    java类和对象继承多态性 java类和对象继承多态性是java语言中的一种基本机制,它允许开发者创建一个新的类,并继承已有的类的属性和行为。这种机制可以提高代码的复用性和维护性。 继承是java语言中的一种机制,...

    java类的继承实例

    Java 类的继承是其面向对象特性中的核心概念之一,它为代码重用和构建复杂的软件结构提供了基础。在 Java 中,一个类可以扩展另一个类的功能,这个被扩展的类被称为父类(或超类),而扩展的类则称为子类(或派生类...

    李兴华java继承的应用

    在这个名为“李兴华java继承的应用”的主题中,我们将深入探讨Java类继承的概念、语法以及其在实际编程中的应用。 1. **类的继承概念** 在Java中,类的继承是通过使用关键字`extends`来实现的。子类可以获取父类的...

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

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

    java 继承泛型类示例

    了解这些概念后,我们可以看到`GenericClass.java`文件可能包含了关于如何创建和使用继承泛型类的实际代码示例。而`Java.jpg`可能是用于辅助解释的图像,比如类结构图或代码截图。在实际学习过程中,结合代码和图像...

    Java IO类继承关系

    JavaIO类InputStream/OutputStream继承关系图,使您对IO类一目了然

    java基础类与继承.ppt

    Java中的类与继承是面向对象编程(Object-Oriented Programming, OOP)的核心概念,它们在构建复杂的软件系统中起到至关重要的作用。面向对象编程是一种编程范式,它基于对象和类的概念,通过继承、封装和多态等特性...

    java继承例题

    Java继承是面向对象编程(OOP)的一种机制,允许一个类继承另一个类的成员变量和成员方法。通过继承,可以实现代码的重用和扩展。 在Java中,继承是通过使用关键字`extends`来实现的。例如,`class B extends A`...

    Java中extends类的继承

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

    Java 类和继承相关代码集

    Java 类和继承是面向对象编程的核心概念,它们构成了Java程序设计的基础。在这个代码集中,我们很显然会看到一系列关于如何创建和使用Java类以及实现继承的示例代码。以下是对这些概念的详细解释: 1. **Java 类**...

Global site tag (gtag.js) - Google Analytics