封装,继承和多态
1.封装:
属性私有,get/set
记住快捷键alt+insert
2,继承
extends
继承是类和类之间的关系,除此之外,类和类之间的关系还有依赖,组合,聚合等
继承关系的两个类,子类(派生类)---父类(基类)
快捷键:IDEA中父类窗口上ctrl+H,可以打开继承树
object类
JAVA中,所有的类都默认继承object类

JAVA中只有单继承,没有多继承,一个爸爸可以生多个儿子,一个儿子没有几个爸爸。
构造方法
this():本类的构造
super():父类的构造
重写 :Alt+insert 选中override
- 1.方法名必须相同
- 2.参数列表必须相同
- 3.修饰符:范围可以扩大,但不能缩小:public>protected>default>private
- 4.抛出的异常:范围可以被缩小,但不能扩大 ClassNotFoundException->Exception (大)
静态方法:方法的调用只和左边定义的数据类型有关
非静态方法:重写的方法关键词只能是public
3. 多态
- 动态编译:类型:可扩展性更强
- 即同一个方法可以根据发送对象的不同二采用多种不同的行为方式。
- 一个对象的实际类型是确定的,但可以指向对象引用的类型有很多
- 多态存在的条件
- 有继承关系
- 子类重写父类的方法
- 父类引用指向子类的对象,子类的引用不能指向父类的对象
- 注意:多态是方法的多态,属性没有多态。
- 不能被重写的方法
- static 方法,属于类,不属于实例
- final 常量
- private 方法;
-
-
public class Person { public void run(){ System.out.println("run"); } }public class Student extends Person { @Override public void run() { System.out.println("Son run"); } public void eat(){ System.out.println("eat"); } }public class Application { //多态测试 public static void main(String[] args) { //一个对象的实际类型是确定的 //new Student(); // new Person(); //可以指向的引用类型不确定了 Student s1=new Student(); Person s2=new Student(); //父类的引用指向子类的类型 Object s3=new Student();//对象能执行哪些方法,主要看对象左边的类型,和右边关系不大
s2.run(); s1.run(); s1.eat(); } }
-
-
把父类转化为子类,向下转化,强制转换
抽象:封装、继承、多态

浙公网安备 33010602011771号