JAVA的三大特性

220 阅读2分钟

封装性:

封装性的实现:通过私有化属性(private)的方式,对属性进行私有化。再通过公共的(public)get()和set()方法对该属性进行获取和设置。

public class Person {
    private String name;
    int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

可以在set()方法中对设置的值进行一定条件的限制。如下图对age的设置。

public void setAge(int age) {
    if( 0 < age && age < 150){
        this.age = age;
    }else{
        this.age = 0;
    }

封装性的优点:

1、保护类中的属性安全。

2、增加程序的可维护性。

权限修饰符:

从大到小:public protect default(缺省) pravite

image.png

继承性:

继承性的理解:

一个类继承另一个类。继承的类称为子类,被继承的类称为父类。子类一旦继承了父类,那么就继承了父类的属性和方法。

Java的继承规定:

1、父类可以有自己的父类。

2、一个子类只能有一个直接父类,可以有多个间接父类。

3、一个父类可以有多个父类。

代码实现:

public class Father {
    private String name;
    private  int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
class Son extends Father{

}
class Test{
    public static void main(String[] args) {
        Son son = new Son();
        son.setAge(12);
        son.setName("Zgs");
        System.out.println("名字:" + son.getName() + " 年龄:" + son.getAge());
    }
}

优点:

1、减少了代码的冗余

2、便于功能拓展

3、为以后的多态性提供了前提

多态性:

父类的引用指向子类的对象,消除类型之间的耦合关系。

多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。

实现多态性的三个必要条件:

1、继承

2、重写:在有继承的前提下,子类对父类的方法进行重定义。

3、向上转型:子类引用的对象转换为父类类型

定义格式:父类类型 变量名=new 子类类型();

编译看左边,运行看右边:编译时看父类有没有此方法,如果没有,则编译错误。如果父类有此方法,则执行子类重写的方法,如果子类没有重写方法,则会调用父类的方法。

具体代码:

public class Animal {
    public void eat(){
        System.out.println("动物吃东西");
    }
}
class Cat extends Animal{
    public void eat(){
        System.out.println("🐱吃🐟");
    }
}
class Dog extends Animal{
    public void eat(){
        System.out.println("🐕吃骨头");
    }
}

测试类:

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