Java中类的继承、重写、自动转型以及多态
1) 类的继承
在我们编写一个学生类时,他都有姓名、学分、性别和年龄等属性,但是当我们把这个学生类扩展到大学学生或中学学生时,可以知道属性依旧没变。但是为了省去重定义相同属性的的代码,这时就可以运用类的继承。那么什么叫类的继承?通过关键字“extends”来定义的类。用代码说明:public class Student extends People {}//继承People类,像这样的有关键字extends的就可称为类的继承,其中student类叫作子类,People类为父类。那么子类Student类继承了父类People什么东西呢?子类继承了父类中拥有的属性和方法。这里用代码说明下:
public class Manager {
public static void main(String [] args){
//创建学生类
student st=new student();
st.name=”张三”;
//调用方法:这些方法是从父类People中继承来的
st.eat();
}
}
父类:public class People {
//定义属性
String name;
int age;
String sex;
String project;
public void eat(){
System.out.println("父类吃饭的方式");
}
}
2) 方法的重写
子类重写父类的方法,方法名相同,返回参数类型相同。如父类的一个方法:
public class People {
//定义属性
String name;
int age;
String sex;
String project;
//定义方法
public void eat(){
System.out.println("父类吃饭的方式");
}
}
在子类中重写就为:
public class Student extends People {
//重写方法
public void eat(){
System.out.println("学生吃饭的方式");
}
}
在调用子类的方法时,必然调用子类的重写方法。
3) 自动转型
自动转型就是如将建立的对象:Student st=new Student();改变为;People st=new Student();这样,后面调用方法时,在应用到父类的方法时自动调用子类中重写的方法,别的方法不调用。这里用代码说明:
public classStudent extend People {
public void eat(){
System.out.println("学生吃饭的方式");
}
}
public class Manager {
public static void main(String [] args){
People st=new Student();
st.name="张三";
st.age=20;
st.project="信息管理";
st.eat();
}
}
最后输出的结果为:学生吃饭的方式。
4) 多态
相同类型的对象调用相同方法时,由于继承和重写的运用,得到的结果不一定相同。或者说,只有运行到那步时,才知道最后的结果是什么。以代码说明:
//程序入口
public class Manager {
public static void main(String [] args){
People st=new Student();
st.name="张三";
st.age=20;
st.project="信息管理";
People te=new Teacher();
te.name="王五";
st.age=50;
st.project="java语言";
te.eat();
st.eat();
People pel=new People();
pel.eat();
}
}
//父类
public class People {
//定义属性
String name;
int age;
String sex;
String project;
public void eat(){
System.out.println("父类吃饭的方式");
}
}
//子类Teacher
public class Teacher extends People{
public void eat(){
System.out.println("老师吃饭的方式");
}
}
//子类Student
public class Student extends People {
public void eat(){
System.out.println("学生吃饭的方式");
}
}
最后输出结过为: 老师吃饭的方式
学生吃饭的方式
父类吃饭的方式
分享到:
相关推荐
java类的继承与多态 java类的继承是指一个类继承另一个类的字段和方法,并在原有基础上进行扩展和修改。继承是面向对象编程的基本特征之一,它允许我们创建出具有继承关系的类之间的关系,实现代码重用和提高开发...
下面将分别详细介绍这三个概念以及它们在Java编程中的应用。 **封装**是面向对象编程的基础,它强调将数据和行为捆绑在一起,形成一个独立的对象。在Java中,通过访问修饰符(如`private`、`public`等)实现封装,...
### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。
4. instanceof关键字:用于判断对象是否是某个类或其子类的实例,是多态中常用的一个条件判断。 总的来说,Java的多态性是实现面向对象设计的重要工具,它使代码更加灵活、可扩展,同时也提高了代码的复用性。理解...
在Java中,继承允许一个类(子类)从另一个类(父类)继承特性,而多态则使得不同类型的对象能够共享相同的操作。 ### Java 继承 **1. 继承的定义** 继承是一种“is-a”关系,表示子类是父类的一种特殊情况。子类...
本文将深入探讨Object类、对象转型(向上转型和向下转型)以及多态的概念。 **第一节: Object类** Object类是所有Java类的基类,它位于类层次结构的根节点。这意味着,无论你创建哪个自定义类,最终都会间接地...
内容概要:本文详细介绍了Java中的继承和多态两大核心概念。首先从基础知识入手,解释了继承的定义、关键字extends和super的使用、父类与子类的关系等。接着讨论了多态的定义、方法重载和重写的区别、向上转型与向下...
接口也常用于实现“多重继承”效果,因为Java语言中类只支持单继承。 4. **向上转型(Upcasting)与向下转型(Downcasting)**:向上转型是指将子类对象赋值给父类引用,这是隐式的,编译器允许这么做,因为子类是...
还探讨了Java多态的特点,如方法重载与重写、向上转型与向下转型的应用,以及在设计模式中的具体实践。文中提供了大量的案例与代码示例,帮助读者加深理解。 适合人群:Java初学者及有一定经验的开发者。 使用场景及...
面向对象编程是Java的核心特性,其中封装、继承和多态是三大基石。在这个主题中,我们将专注于"多态"这一特性,它是Java编程灵活性和可扩展性的重要体现。 多态(Polymorphism)在希腊语中意为“多种形态”,在编程...
在阅读源码时,关注类的定义、继承关系、方法的重写以及访问控制,这些都是Java面向对象编程的关键元素。同时,利用合适的工具(如IDE或代码编辑器)可以帮助我们更有效地分析和调试代码,提高工作效率。
本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...
在Java中,多态主要通过两种方式体现:**向上转型**和**方法重写**。 #### 二、向上类型转换(upcasting) 向上类型转换是指将子类的对象赋值给父类的引用,这一过程是自动进行的,无需显式转换。例如,在上述例子中...
Java中实现多态主要依赖于三个关键要素:继承、方法重写和向上转型。 1. **继承**:Java中的类可以继承自另一个类,子类会自动获得父类的所有非私有属性和方法。这是多态的基础,因为它允许我们定义一个通用的基类...
总结来说,Java中的多态是通过继承、重写和父类引用子类对象来实现的,它提供了代码的灵活性、可扩展性和可维护性,是面向对象编程的重要特征之一。理解和熟练运用多态,对于编写高质量的Java应用程序至关重要。
在Java编程语言中,类的封装、多态和继承是面向对象编程的三大核心特性。这些概念为软件开发提供了强大的抽象能力和代码复用机制,使得程序设计更加灵活、高效。 ### 一、类的封装 封装是面向对象编程的基础,它将...
Java语言的继承和多态机理是面向对象程序设计的重要组成部分,它不仅仅是编程语言中的一个特性,更是实现...对于进一步想要深入研究Java继承和多态机理的读者,可以通过提供的资源链接获得更详细的理论分析和实例演示。
在Java编程语言中,多态性(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装和继承。多态性允许我们使用一个接口来代表多种不同的类,这使得代码更加灵活,易于扩展。它主要体现在方法的多态和对象的...
在Java编程语言中,类的继承是面向对象编程的一个核心概念,它允许我们创建新的类(子类)基于已存在的类(父类或超类)。继承提供了代码的复用性,使得子类可以共享父类的属性和方法,同时还可以添加自己的特定功能...