java封装继承多态代码(java封装继承多态的理解)

封装

封装是Java中面向对象特性的一个重要概念,指的是隐藏对象的属性和方法,只对外部提供访问接口,避免了外部直接访问对象内部数据,从而保证了对象数据的安全性和完整性。

java封装继承多态代码(java封装继承多态的理解)

在Java中实现封装的方式是通过访问修饰符来限制属性和方法的访问范围,常用的访问修饰符有public、private、protected和默认访问。

例如:

public class Person {
    private String name;
    private int age;
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getName() {
        return name;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public int getAge() {
        return age;
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("张三");
        person.setAge(18);
        
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

在上面的代码中,Person类中的name和age属性被声明为private,只能通过公共的setName、getName、setAge和getAge方法来进行操作,从而保证了对象数据的安全性。

继承

继承是面向对象编程中的一种重要特性,可以使得子类从父类中继承属性和方法,避免了重复的定义和实现,提高了代码的可复用性和可维护性。

在Java中,我们可以通过extends关键字来实现继承。例如:

public class Animal {
    private String name;
    private int age;
    
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public void eat() {
        System.out.println(name + "正在吃东西");
    }
}

public class Dog extends Animal {
    public Dog(String name, int age) {
        super(name, age); // 调用父类的构造方法进行属性初始化
    }
    
    public void wang() {
        System.out.println("汪汪汪");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("旺财", 3);
        dog.eat();
        dog.wang();
    }
}

在上面的代码中,Dog类继承了Animal类,从而拥有了Animal类的属性和方法,同时在Dog类中定义了自己的wang()方法。通过继承可以减少代码的冗余,提高代码的复用度。

多态

多态是面向对象编程中一个重要的概念,指的是同一类型的对象在不同的状态下表现出不同的行为。在Java中,多态包括方法的重载和方法的覆盖两种形式。

方法的重载指的是在同一个类中定义多个方法,它们的方法名相同但参数类型或参数个数不同,编译器会根据参数的类型和个数自动选择相适应的方法。例如:

public class Main {
    public void print(int a) {
        System.out.println("输入的整数为:" + a);
    }
    
    public void print(double b) {
        System.out.println("输入的浮点数为:" + b);
    }
    
    public static void main(String[] args) {
        Main main = new Main();
        main.print(1);
        main.print(1.0);
    }
}

在上面的代码中,由于参数类型不同,print()方法会根据参数的类型自动选择调用相应的方法,从而实现了方法的重载。

方法的覆盖指的是子类重写父类的方法,从而使得同一类型的对象在不同的状态下表现出不同的行为。例如:

public class Animal {
    public void eat() {
        System.out.println("动物正在吃东西");
    }
}

public class Dog extends Animal {
    public void eat() {
        System.out.println("狗正在啃骨头");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Dog dog = new Dog();
        animal.eat();
        dog.eat();
    }
}

在上面的代码中,由于Dog类重写了Animal类的eat()方法,所以通过同一类型的对象Dog和Animal调用eat()方法时表现出不同的行为。这就是多态的表现。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javapeixun1n-6.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 上午6:27
下一篇 2023年4月25日 上午6:27

猜你喜欢