封装
1.将属性进行私有化private【不能直接修改属性】
2.提供一个公共的set方法,用于对属性判断并复制
public void setXxx(){//权限判断
return xx;
}
3.提供一个公共的get()方法,用于获取属性的值
public XX getXxx(){//权限判断
return xx;
}
比如这样封装:
public class Person{
public String name;
private int age;
private double salary;
private String job;
}
继承
1.代码的复用性、扩展性和维护性提高了。
2.子类必须调用父类的构造器,完成父类的初始化。
3.创建了子类的对象时,无论用的子类的哪一个构造器,默认总会调用父类的无参构造,如果弗雷没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化,否则编译不了。
4.如果希望指定去调用父类的某个构造器,需要显示调用。
5.super使用放在第一行,this也需要放第一行,所以他俩不能一起用。
6.java所有类都是Object的子类。
7.子类最多只能直接继承一个父类,不像c里有菱形继承。
8.父类构造器的调用不限于直接父类,能一直追溯到Objet类。
多态:
方法或对象具有多种形态,多肽是建立在封装和继承的。
多态的体现:
方法的多态:重写和重载。
对象的多态:
1.一个对象的编译类型和运行类型可以不一致
2.编译类型在定义对象时就确定了。
3.运行类型可以改变。
4.编译类型看定义=左边,运行类型看右面。
Animal animal = new Dog();
animal = new Cat();