首页 > 其他分享 >多态

多态

时间:2024-04-29 15:23:19浏览次数:16  
标签:run 子类 多态 Person Student new public

package duotai;

public class Person {
public void run(){
System.out.println("run") ;
}
}

package duotai;

public class Student extends Person {
@Override
public void run() {
System.out.println("son");
}
public void eat(){
System.out.println("eat");

}

}

package duotai;

public class Application {
public static void main(String[] args) {
//一个对象的实际类型是确定的
//new Student();
//new Person();
//可以指向的引用类型就不确定了:父类的引用指向子类

    //Student(子类) 能调用的方法都是自己的或者继承父类的!
    Student s1 = new Student();
    //Person(父类) 可以指向子类,但是不能调用子类独有的方法
Person s2 = new Student();

Object s3 = new Student();
//对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
s2.run();//子类重写了父类的方法,执行子类的方法
s1.run();
}
}

标签:run,子类,多态,Person,Student,new,public
From: https://www.cnblogs.com/anonymity12/p/18165771

相关文章

  • C++多态与虚拟:Objects 实例化(Objects Instantiation)探究
    一、Objects的创建依据已有的classCPoint,我们可以产生一个或多个object(对象),或者说是产生一个instance(实体):CPointaPoint(7.2);//aPoint._x初始值为7.2aPoint.x(5.3);//aPoint._x现值为5.3这样的objects可能放在函数的stack之中(对象是在函数内部创建的,......
  • C++多态与虚拟:函数重载(Function Overloading)
    重载(Overloading):所谓重载是指不同的函数实体共用一个函数名称。例如以下代码所提到的CPoint之中,有两个memberfunctions的名称同为x():1classCPoint{23public:4floatx();5voidx(floatxval);67};  其两个memberfunctions实现代码如下:1f......
  • C++ 多态与虚拟:Class 语法语义
    1.object与class:在object-orientedprogramming编程领域,对象(object)有更严格的定义。对象是由数据结构和用于处理该结构的过程(称为methods)组成的实体(instance)。这些方法由对象接收的消息激活。一个对象的内部数据结构与其他对象完全隔离(此属性称为“encapsulation”)。对象是基于模......
  • C++八股之函数重载与重写-静态多态与动态多态
    重载:是指在同一作用域中允许存在多个同名函数,⽽这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。重载与类无关,重载实现编译时多态,属于静态绑定。重写:指⼦类新定义⽗类的函数的做法。如果重写的函数在父类中是虚函数,那么能够实现动态多态。如果在父类中没......
  • 虚函数与多态
    虚函数前有virtual关键字的成员函数classbase{ virtualintget();}intbase::get{}virtual关键字只用在类的定义里的函数声明构造函数与静态成员函数不能是虚函数多态表现形式一派生类的指针可以赋给基类的指针通过基类指针调用基类和派生类中的同名虚函数......
  • java中的多态
    Java中的多态同种行为具有不同表现形式或形态的能力意义:程序最终的状态只有在执行过程中才会被决定而非在编译期间决定提高了程序的灵活性和扩展性实现的必要条件:必须有继承必须有重写方法父类引用指向子类对象创建四个类Animal类publicclassAnimal{ public......
  • Java基础_13多态、异常和String类
    今天的内容1.多态2.异常3.String类1.多态多种形态。同一个事件,在不同的对象操作事件的时候,会有不同的结果!!!需要三个条件:​1.继承​2.重写​3.父类的引用指向子类的对象1.1向上转型父类的引用指向子类的对象Personperson=newMan();向上转型案例......
  • C++ Primer Plus(第6版):封装、继承与多态
    C语言编程原理C语言在最初面试时是一种过程性(procedural)语言,这意味着它强调的是编程的算法方面,程序命令计算机按照一系列流程生成特定的结果。但是随着程序规模的扩大,程序经常使用分支语句,很多旧式程序的执行路径很混乱(被称为“意大利面条式编程”,突出一个混乱程度)。计算机科学家......
  • 再探Java为面试赋能(二)Java基础知识(二)反射机制、Lambda表达式、多态
    文章目录前言1.4反射机制1.4.1Class对象的获取1.4.2Class类的方法1.4.3通过反射机制修改只读类的属性1.5Lambda表达式1.5.1函数式接口1.5.2Lambda表达式的使用1.6多态1.6.1多态的概念1.6.2多态的实现条件1.6.3重载(Overload)和重写(Override)前言往期精选......
  • Java中的多态
    1.1多态的概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。同一件事情,发生在不同对象身上,就会产生不同的结果。1.2多态实现条件在java中要实现多态,必须要满足如下几个条件,缺一不可:1.必须在继承体系下2.子类必......