JAVA继承和多态

一、继承

        继承是面向对象编程中的一种机制,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以复用父类的代码,同时还可以扩展或修改父类的行为。

特性:

        1、子类的构造函数在执行时,首先会调用父类的构造函数。因此,确保父类的构造函数完成后再初始化子类的特有属性。 

        2、protected 修饰符允许子类访问父类的成员,但不能被其他类访问。private 修饰符完全隐藏成员,不允许子类直接访问。选择合适的访问权限可以增强封装性和灵活性。

例子: 

// 父类(基类)
class Animal {
    // 父类的属性
    String name;
    
    // 父类的方法
    void eat() {
        System.out.println(name + "正在吃饭。");
    }
}

// 子类(派生类)
class Dog extends Animal {
    // 子类特有的方法
    void bark() {
        System.out.println(name + "正在汪汪叫。");
    }
}

// 测试继承
public class Main {
    public static void main(String[] args) {
        // 创建一个 Dog 对象
        Dog myDog = new Dog();
        
        // 设置属性
        myDog.name = "小黑";
        
        // 调用父类的方法
        myDog.eat();
        
        // 调用子类的方法
        myDog.bark();
    }
}

二、多态 

多态是指一个接口或方法可以表现为多种不同的行为。在 Java 中,多态通常有两种表现形式:

        1、方法重载:在同一个类中定义多个方法名相同但参数不同的方法。

        2、方法重写:在子类中重写父类的方法,以实现子类特有的行为。

特性: 

         1、在子类中重写父类的方法时,确保方法名、参数列表和返回类型与父类方法一致。否则,子类中的方法不会真正重写父类的方法,而是创建了一个新的方法。

        2、在重写方法时,使用 @Override 注解可以帮助编译器检查方法是否正确重写。如果方法签名不匹配,编译器会报错。

例子: 

// 父类
class Animal {
    // 重写此方法的子类会表现出不同的行为
    void makeSound() {
        System.out.println("动物发出声音。");
    }
}

// 子类
class Dog extends Animal {
    // 重写父类的 makeSound 方法
    @Override
    void makeSound() {
        System.out.println("小狗汪汪。");
    }
}

// 另一个子类
class Cat extends Animal {
    // 重写父类的 makeSound 方法
    @Override
    void makeSound() {
        System.out.println("小猫喵喵。");
    }
}

// 测试多态
public class Main {
    public static void main(String[] args) {
        // 创建父类类型的引用,但指向子类对象
        Animal myAnimal;
        
        myAnimal = new Dog();
        myAnimal.makeSound();  // 输出 "小狗汪汪。"
        
        myAnimal = new Cat();
        myAnimal.makeSound();  // 输出 "小猫喵喵。"
    }
}
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真真假假々

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值