Java三大特性之多态

一、多态

1.1 什么是多态

一种事物的多种状态。如:打印机有彩色打印机和黑白打印机

1.2 使用多态的条件

1.必须在继承体系下
2.子类必须要对父类方法进行重写
3.通过父类的引用调用重写方法
多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。
示例:

public class Pet {
    public String name;
    public int age;				
    private int id;				
    int card;					
    protected String address;	

    public void feed(){
        System.out.println("喂食中...");
    }
}

class Dog extends Pet{
    Dog dog = new Dog();
   	public void feed(){
   		System.out.println("吃骨头...")   //重写了父类中的方法
   		}
    
}

public class Test {
    public static void eat(pet p){
        p.feed();
    }
    public static void main(String[] args) {
        Dog dog = new Dog();
        eat(dog);
    }
}

二、转型

2.1 向上转型

子类到父类的转换,类似向上自动类型转换,如:Pet p = new Dog();

注意:
此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法, 不是父类的方法。
此时通过父类引用变量无法调用子类特有的方法。
此时通过父类引用只能访问到父类的属性。

2.2 向下转型

父类到子类的转换:类似之前学习过得强制类型转换,如Dog dog =(Dog)pet;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Java实验三继承和多态,我可以为您提供一些基本的知识点和例子。 在Java中,继承是一种重要的面向对象编程概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类可以使用父类中的属性和方法,也可以添加自己的属性和方法。多态是指同一种类型的对象,在不同的情况下会表现出不同的行为。在Java中,多态可以通过方法重载和方法重写来实现。 下面是一个简单的例子,演示了如何使用继承和多态: ``` // 定义一个动物类 class Animal { public void makeSound() { System.out.println("动物发出声音"); } } // 定义一个狗类,继承自动物类 class Dog extends Animal { @Override public void makeSound() { System.out.println("狗发出汪汪声"); } } // 定义一个猫类,继承自动物类 class Cat extends Animal { @Override public void makeSound() { System.out.println("猫发出喵喵声"); } } // 测试多态 public class Test { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.makeSound(); // 输出:狗发出汪汪声 animal2.makeSound(); // 输出:猫发出喵喵声 } } ``` 在上面的例子中,我们定义了一个Animal类,它有一个makeSound()方法。然后我们定义了一个Dog类和一个Cat类,它们都继承自Animal类,并重写了makeSound()方法。最后,在测试类中,我们创建了一个Animal类型的变量animal1和animal2,分别指向Dog对象和Cat对象。由于多态的特性,animal1和animal2都可以调用makeSound()方法,但是它们实际上调用的是Dog类和Cat类中重写的makeSound()方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值