封装:原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法,同时因为优先级存在下面的关系图:
格式: public class类名{ 修饰符 类名(参数){ } }(可以无参构造)
继承:可以使的子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法(当两个类有共同的属性和方法,就可以用继承,或者说一个类和一个类中有包含关系,就可以使用继承),java中类只支持单继承,也就是只能用extends继承一个,不能多次继承,但是可以多层继承
格式:public class 子类名 extends 父类名(){ }(是在子类中用extends方法)
父类:也被称为基类,超类。
子类:也被称为派生类(1.子类可以有父类的内容2.子类还可以有自己特有的内容)
继承的访问特点:在子类中方法需要去访问一个变量的优先级:子类方法中找>子类成员范围找>父类成员范围找(如果没有就报错,不考虑父亲的父亲)(public 定义的数可以在多个类中使用,如果父类用了private来定义成员变量,子类就不能直接得到对应的值,也就是父类中的私有内容,子类是无法直接用的)
1.访问子类中的成员变量,需要用到this,这里的 this.变量名 指代就是在该类中对应的成员变量
2.访问父类中的成员变量,需要用到super,这里 super.变量名 指代的就是父类中对应的成员变量
方法重写:子类中出现了和父类一模一样的方法声明
当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父亲的功能,又定义了子类特有的内容
注:1.私有方法不能被重写(父类私有成员子类是不能继承的)2.子类方法访问权限不能比父类低(public>默认>私有)
多态:同一个对象,在不同时刻表现出来的不同形态,注意:1.成员变量:编译看左边,执行看左边,2.成员方法:编译看左边,执行看右边。因为成员方法有重写,而成员变量没有
多态的转型:
1.向上转型:从子到父,父类引用指向子类对象
格式:父类 变量名 = new 子类();
2.向下转型:从父到子,父类引用转为子类对象
格式:类似于强转数据类型 ,接着上面的向上转型,在代码中要再使用子类特殊方法时,先向下转型:子类 新变量名 = (子类)旧变量名(注意:在内存分析的时候,向下转型只要地址一样,就可以使用,看地址的时候要注意该地址的类型是哪一个)