首页 > 其他分享 >多态

多态

时间:2023-02-08 13:23:32浏览次数:40  
标签:子类 多态 public Student new eat

public class Student extends Person{

@Override
public void run() {
System.out.println("1");
}
public void eat(){
System.out.println("eat");
}
}



public class Person{

public void run(){
System.out.println("123");
}
public void eat(){
System.out.println("e");
}


}



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();

//对象能执行哪些方法,主要看左边的类型,和右边关系不大
s1.eat();
((Student)s2).eat();//强制转换 类型转换异常:ClassCastExcetion
s2.eat();//子类和父类都有eat方法时,会执行子类的方法

}
}

/*
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类有联系
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f=new Son();
*/

标签:子类,多态,public,Student,new,eat
From: https://www.cnblogs.com/123456dh/p/17101384.html

相关文章

  • 什么时候会有多态?
    因为Java的引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,编译和声明有关。运行时类型由实际赋给该变量的对象决定,也就是......
  • 面向对象程序设计 第八章 多态性
    目录运行时的多态性(虚函数、纯虚函数、抽象类)  override与final  重载运算符(运算符重载为成员函数)  运算符重载为非成员函数 ......
  • 52面向对象-多态
    packagechapter04;publicclassJava13_Object{publicstaticvoidmain(String[]args){//TODO面向对象-多态//多态指一个对象在不同场景下......
  • Java多态
    Java中的多态是一个概念,通过它我们可以通过不同的方式执行单个动作(方法)。多态性派生自2个希腊词:“poly”和“morphs”。词语“poly”意为许多,“morphs”意为形式。所......
  • 虚函数与多态
    虚函数:C++中的虚函数的作用主要是实现了多态的机制。虚函数是一种在基类定义为virtual的函数,并在一个或多个派生类中再定义的函数。虚函数的特点是,只要定义一个基类的指针,就......
  • C++迭代器种类与编译期间多态
    迭代器分类C++STL中根据移动能力将迭代器分成了5类:InputIterator输入迭代器,只支持operator++操作。OutputIterator输出迭代器,只支持operator++操作。......
  • 什么是多态
    多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象再执行同一个方法时(注意,这里是说同一个类型的对象,而不是同一个对象,同......
  • php多态
    多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合......
  • C# 多态性
    多态性:分为静态多态和动态多态1.静态多态相同一个方法名 参数的数量或者类型不一样,这就是静态多态。2.动态多态有抽象类:不同的子类去继承抽象类的方法,实现不同的功......
  • Java 多态
    多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时并不确定,而是在程序运行期间才确定。即一个引用变量倒底会指向哪个类的实例对象......