JavaSE-多态和访问权限

访问控制权限

Java中用来控制类及类的方法和变量访问权限(public,private,protected,default)

1. public:(公共的)表示包(package)内及包外的任何类(包括子类和普通类)都可以访问

2. protected:(受保护的)表示包内的任何类及包外继承了该类的子类才能访问,突出继承

3. default:(默认的)表示包内的任何类都可以访问,但是包外的任何类都不能访问

4. private:(私有的)只有本类可以访问,包内外的任何类均不能访问——封装

访问控制修饰符 同类 同包 子类 不同的包
public 1 1 1 1
protected 1 1 1 0
default 1 1 0 0
private 1 0 0 0

多态

多态分为编译时的多态运行时多态。其中编译时多态可称为静态多态,运行时多态为动态多态,主要通过动态绑定实现,常规默认的多态

多态为了应对不同的表现形式

静态多态

静态多态就是方法的重载,主要根据参数列表的不同来区分不同的函数

静态多态不需要继承

动态多态

动态多态就是指引用在不同的情况下所表现的实际对象
  1. 继承(实现接口),在多态中必须存在父类与子类的关系
  2. 重写,子类必须面对父类的某些方法进行重新定义,在调用这些方法时,就会调用子类的方法
  3. 向上转型:父类引用指向子类的对象

向上转型

向上转型:子类的对象转换为父类类型

Person person = new Teacher();  //向上转型

子类的单独定义的方法会丢失,能访问子类重写父类的方法

向下转型

向下转型是把父类对象转化为子类对象

向下转型必须得有向上转型作为前提。因为只有子类相对应的才可以转换

Person person = new Teacher();  //向上转型
Teacher teacher = (Teacher) person;  //向下转型

猜你喜欢

转载自blog.csdn.net/JavaDestiny/article/details/85016706