1、为什么要继承?如何继承?继承到了什么?
比如我们定义了一个学生类,所有的学生都拥有一些特定的属性和方法。但如果这个系统应用于大学生的话,又会有许多的大学生类中特有的属性和方法。这时就不必在重新定义一个大学生类了,我们可以让他继承学生类。
首先我们先定义一个学生类:
package cjl.extend0926;
/**
* 学生类
* @author wyz
*
*/
public class Student {
public Student(){
}
/** 名字属性*/
public String name;
/**
* 设置名字的方法
* @param s 要设置为名字的字符串
*/
public void setName(String s){
name = s;
}
/**
* 学生学习的方法
*/
public void study(){
System.out.println(name+"在学习");
}
}
然后通过extends关键字让大学生类继承上面的学生类:
public class UNStudent extends Student{
/**
* 子类特有的方法
* 私有的属性和方法能够被继承到,但不能直接使用
*/
public void cet4(){
System.out.println(name+"是大学生,要考试四级!!");
}
/**
* 方法的重写
* 重写:子类重新实现父类中的方法
* 方法名,参数,返回值都一样,仅仅是方法体不一样
*/
public void study(){
System.out.println(name+"是大学生,在学习");
}
}
我们称UNSstudent为子类,Student叫UNStudent的父类,UNStudent中就自动具有了Student中定义的属性和方法了。
执行代码:
public static void main(String args[]){
//大学生对象
UNStudent stu2 = new UNStudent();
stu2.setName("李四");
stu2.study();
}
输出结果:
李四在学习
需要强调一点的是父类的构造方法不能够被子类继承。
2、自动转型和强制转型
自动转型指的是子类对象会自动的转化为父类类型,对象在调用父类的方法时,如果子类重写了父类的方法,调用的就是子类的实现,否则就调用父类的方法。
另外需要注意的几点:
1.子类特有的属性和方法,只能是子类类型的对象才调用
2.对象声明的是什么类型,就只能调用这个类(及父类)中定义的方法
3.一个类中的属性和方法,只能是这个类(及子类)的对象才能调用
如代码:
//自动转型
//子类对象的类型可以自动转成父类类型
Student stu3 = new UNStudent();
stu3.setName("王五");
//4.一个对象调用的方法是父类还是子类的,取决于对象本身的类型
stu3.study();
运行结果:
王五是大学生,在学习
强制转型指的是将父类类型的对象强制转化为子类类型。因此强制转型可能会发生逻辑错误。一个对象可以被强制转型,肯定是在前面某个地方被自动转型了。一个对象被自动转成父类类型后还想调用子类特有的方法,就必须强制转型。
代码:
UNStudent stu4 = (UNStudent)stu3;
stu4.cet4();
运行结果:
王五是大学生,要考试四级!!
3、方法的重写和重载
在上例中大学生和学生的学习方法应该是不一样的,所以有必要在子类中对父类的方法进行重写。重写就是保持方法的定义不变(包括方法名、参数、返回值),但方法内部实现同父类不同。
如上例中的public void study(){}方法。
如果子类中重写了父类的方法,子类的对象在调用时则调用的是子类的方法,否则则调用父类的。
方法的重载指的是在同一类中可以出现同名的方法,方法的参数、返回值及函数体不同。对象在调用时根据其所含参数及返回值类型调用相应的函数。
如:public int study(){}
public int study(int a){}
public void study(){}
4、多态的理解
多态性指的是由于继承和重写机制,相同的对象在调用相同的方法时,得到的结果可能不一样。
分享到:
相关推荐
### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...
### Java 学习课件:继承和多态 #### 继承的概念与应用 继承是面向对象编程的一个核心概念,它允许我们定义一类对象获取另一类对象的特性。这种机制可以减少代码冗余,增强代码复用性,并使得类之间的关系更加清晰...
在Java中,多态主要体现在两个方面:**编译时类型与运行时类型的不同**以及**对象的向上转型和向下转型**。 #### 编译时类型与运行时类型 在Java中,每个引用变量都有两种类型:**编译时类型**和**运行时类型**。...
5.7 本章小结 本章主要讲解了 Java 语言程序设计中接口和多态的概念、语法和应用。接口是一种抽象机制,提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除 C++ 中的多继承那样的复杂性。多态...
下面是对"Java中类的继承学习小结"的详细讲解。 首先,类的继承使用关键字`extends`来实现。子类(也称为派生类)声明时,会指定一个父类(或超类): ```java public class DerivedClass extends BaseClass { //...
Java 方法继承、方法重载、方法覆盖、小结 Java 编程语言中,方法继承、方法重载、方法覆盖是三个重要的概念,它们在软件开发中发挥着重要作用。 方法继承 方法继承是 Java 编程语言的一种机制,允许一个类继承另...
Java面向对象编程是Java语言的核心特性,它基于三个主要原则:封装、继承和多态。在Java中,面向对象的设计允许我们模拟现实世界中的对象和它们之间的交互,从而提高代码的可读性、可维护性和复用性。下面是对Java...
### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...
这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心编写的教学精华,旨在帮助学生巩固所学知识并为后续学习打下坚实基础。 在Java课程中,有几个核心概念和技术是必...
**5.7 本章小结** 接口和多态是Java面向对象编程的核心概念,它们提供了灵活的设计和实现策略,使得代码更加模块化,易于维护和扩展。通过理解和掌握这些概念,开发者可以编写出更加高效、可读性强的Java程序。
在Java中,通过继承、接口和方法覆盖来实现多态。当一个父类引用指向子类对象时,可以调用子类覆盖的父类方法,这就是多态的体现。 5.3 多态的概念 多态允许程序员使用父类引用操作子类对象,增强了代码的灵活性和...
这个"java基础知识从业必备知识点结构图小结.rar"压缩包文件,通过图像化的方式,帮助初学者和从业者快速概览Java的主要知识点,并提供了进一步学习的方向。无论是初入Java殿堂的新手,还是需要巩固基础的开发者,都...
《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...
其次,面向对象的核心机制包括封装、继承和多态。 1. **封装**:封装是面向对象的基础,它通过限制对类内部数据的直接访问,保护数据的安全性。在 Java 中,我们通常使用访问修饰符如 `private`, `default`, `...
Java的关键特性包括封装、继承、多态和抽象,这些都支持良好的代码组织和重用。在Java中,类是对象的蓝图,通过接口实现多继承,而异常处理和垃圾回收机制则提供了强大的错误处理和内存管理能力。 C#,由微软公司...
实验结束后,要求学生撰写实验报告和实验小结,以促进反思和深化理解。附录中提供的实验报告格式则为这一过程提供了规范。总的来说,这本实验指导书为全面掌握Java语言提供了实践平台,有助于培养学生的编程能力和...
面向对象编程是Java语言的核心特性之一,而继承作为面向对象的三大特性(封装、继承、多态)之一,是实现代码复用和扩展性的重要手段。在本章中,我们将深入探讨Java中的继承概念,以及它如何帮助我们构建更加灵活...
本资源摘要信息涵盖了 Java 编程的基础知识点,涉及面向对象编程、类和接口的设计、构造函数、方法的定义、继承与多态的应用等方面。 一、类和对象 1. 定义类:在 Java 中,可以使用 `class` 关键字定义一个类,...