`
NX
  • 浏览: 12228 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论
  • smartan: 话说这就是所谓的以时间换空间吧
    队列
  • NX: 是的,真心感谢各位提出的意见和建议,我也在修改代码,主要是在怎 ...
    队列
  • xchd: 队列不是先进先出吗?好像没有体现这点。
    队列
  • kidding87: 你这里应该和jdk学习下,动态的容量,怎么去扩容,你这里效率非 ...
    队列

继承、重写、自动转型和多态

阅读更多
   继承的关键字是extends,如果一个类A继承了另外一个类B,那么称A是B的子类,B是A的父类,并且A继承了B的所有属性和方法(除了构造方法),但在子类的构造方法中会默认的去调用父类的构造方法 super();。方法的重写是指在子类中定义一个与父类中的方法名、参数、返回值均相同的,但访问权限只能扩大不缩小,方法体不同的方法。对于方法的重写与重载的区分,重写是在继承的子类中,重载是在同一个类中,且重载的方法名相同,但参数必须不同。
    自动转型的格式:父类名 对象名 = new 子类名(); 先是构造了一个子类的对象然后将其转型为父类类型,自动转型后,如果子类重写了父类中的方法,转型后的对象调用的就是子类中的重写方法,如果子类没有重写则调用父类自己的方法;转型后的对象不能调用子类特有的方法。
    多态是指多个相同类型的对象调用相同的方法的时候,由于继承和重写,使得其有不同的方法体去实现。
代码:
//定义一个Student父类
public class Student {
public Student(){
System.out.println("实现的是Student类中的构造方法");
}
String name;
public void setName(String name){
this.name = name;
}
public void study(){
System.out.println(name+"学生在学习");
}
public void play(){
System.out.println(name+"在休息");
}
}

//定义一个 UniversityStudent类来继承 Student类
public class UniversityStudent extends Student{
//将父类中的study方法重写
public void study(){
System.out.println(this.name+"在大学学习");
}
//定义一个子类特有的work方法
public void work(){
System.out.println(this.name+"找工作");
}
}


public class Main {
public static void main(String args[]){
UniversityStudent st1 = new UniversityStudent();
st1.setName("张三"); //子类对象继承了父类的属性和方法
st1.study();
st1.play();
st1.work();
Student st2 = new UniversityStudent();//自动转型
st2.setName("李四");
st2.study(); // Student的对象st2调用的是子类重写的study方法
st2.play();
//st2.work();      自动转型后的Student类的对象st2不能调用子类特有的方法
Student st3 = new Student();
st3.setName("王五");
st3.study(); //Student类的对象 st2.study(); st3.study()实现了多态
st3.play();
}
}

0
0
分享到:
评论

相关推荐

    对象转型和多态1

    【对象转型和多态】 在Java编程语言中,对象转型和多态是面向对象编程的重要概念,它们在软件设计和实现中发挥着关键作用。本文将深入探讨Object类、对象转型(向上转型和向下转型)以及多态的概念。 **第一节: ...

    jave 继承、封装、多态

    在Java中,多态主要有两种形式:编译时多态和运行时多态。编译时多态主要通过方法的重载实现,即在同一个类中定义多个同名但参数列表不同的方法。运行时多态则是通过方法的重写和接口实现实现,子类可以覆盖父类的...

    java 三大特性--封装、继承和多态理解

    Java编程语言以其强大的功能和广泛的应用而闻名,其中三大特性——封装、继承和多态是其核心概念,对于理解和编写高效、可维护的代码至关重要。 **封装**是面向对象编程的基础,它涉及到将数据(属性)和操作这些...

    Java基础入门教程 第4章 继承和多态(共36页).ppt

    Java中的继承和多态是面向对象编程的重要概念,它们极大地提高了代码的复用性和灵活性。在本章中,我们将深入探讨这两个主题。 首先,我们来理解一下继承的概念。继承允许一个类(子类)从另一个类(父类)中继承...

    上转型对象体现多态

    多态(Polymorphism)是指一个接口可以被多个类实现,或者一个抽象类可以有多个子类继承,并且这些子类可以重写父类的方法,表现出不同的行为。多态使得代码更加灵活和可扩展,能够更好地适应需求的变化。 ### 上...

    继承与多态.docx

    在实验过程中,我们不仅了解了继承和多态的基本概念,还掌握了如何在实际项目中应用它们。通过设计动物园的动物模型,我们学会了如何构建类的层次结构,如何在子类中扩展和重写父类的方法,以及如何利用多态性提高...

    four_java继承封装和多态_four_againgpg_

    静态多态主要通过方法重载(相同方法名但参数列表不同)实现,而动态多态则是通过方法重写(子类继承父类并覆盖其方法)实现。当使用父类引用指向子类对象时,调用的方法会根据实际的对象类型而非引用类型确定,这...

    java学习资料-Java继承和多态

    在Java中,多态分为编译时多态和运行时多态。编译时多态主要通过方法重载实现,运行时多态主要通过方法重写(Override)和接口实现实现。 **2. 方法重写** 当子类继承父类并覆盖(Override)父类的某个方法时,这...

    类和对象、对象和封装、继承、多态、异常等教学...

    "第五章 多态.pdf"会讨论多态的概念,包括方法重写(Override)、向上转型和接口的多态性。 5. **接口**: - **接口**:接口是Java中定义行为的规范,它包含一组抽象方法。"第六章 接口.pdf"会介绍接口的定义、...

    java中对象转型多态抽象类接口笔记.doc

    多态是指在程序运行期间能够自动判断引用变量实际所指向的对象类型,并根据实际情况调用相应的方法或执行相应的操作。 - **实现条件**: - 向上转型 - 继承关系 - 方法重写(Override) #### 示例: ```java /...

    java类的继承与多态.docx

    java类的继承和多态是java面向对象编程的基本特征,它们允许我们创建出具有继承关系的类之间的关系,实现代码重用和提高开发效率。在实际开发中,我们可以使用继承和多态来实现不同的功能和行为。 继承的优点: * ...

    5第五章 继承与多态.ppt

    多态有两种形式:编译时多态(静态多态,通过方法重载实现)和运行时多态(动态多态,通过方法重写实现)。 在Java中,多态的实现依赖于以下几点: 1. **抽象类和接口**:抽象类定义了子类必须实现的接口,而接口则...

    java多态的总结

    在Java中,多态分为编译时多态和运行时多态。编译时多态主要体现在方法的重载(Overloading),即在同一个类中可以有多个同名方法,但参数列表不同。编译器会根据传入参数的类型和数量来决定调用哪个方法。运行时...

    详解java封装继承多态

    多态实现的必要条件为继承、重写和向上转型。实现多态的机制是:调用那个方法是由被引用对象的类型决定,而不是引用变量的类型决定的,并且这个被调用的方法必须是被子类重写过的。 多态的实现可以通过以下三个步骤...

    Java 多态应用,掌握多态

    多态分为编译时多态和运行时多态。编译时多态主要通过方法的重载(Overloading)实现,即在同一个类中定义多个同名但参数列表不同的方法。而运行时多态则是通过方法的重写(Overriding)和接口实现实现,它依赖于...

    多态的练习案例

    在编程领域,多态(Polymorphism)是面向对象编程中的一个重要概念,它允许我们用一个接口处理多种...通过学习和实践这些多态案例,初学者可以逐步掌握多态的原理和应用,提升编程能力,为今后的软件开发打下坚实基础。

    java 多态 经典讲解

    在Java中,多态主要通过两种方式体现:**向上转型**和**方法重写**。 #### 二、向上类型转换(upcasting) 向上类型转换是指将子类的对象赋值给父类的引用,这一过程是自动进行的,无需显式转换。例如,在上述例子中...

Global site tag (gtag.js) - Google Analytics