常用系统类、访问控制符
常用系统类:
★Object 类:Object类是Java中所有类的最终祖先。如果一个类在声明时没有包含extends(继承)关键字,那么这个类直接继承Object类
★Random类:Random类提供了一系列用于生成随机数的方法
★Scanner类:Scanner类可以完成从键盘输入内容
★Math 类:Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。Math类中所有方法都是静态方法
★Arrays 类:此类包含用来操作数组(比如排序和搜索)的各种方法。
★Date类、DataFormat、SimpleDateFormat类
★System 类:System类是一个抽象类,所有的字段和方法都是静态的。其中包含一些有用的类字段和方法,它不能被实例化
访问控制符:
访问控制 | private | default | protected | public |
同包同类 | ok | ok | ok | ok |
同包不同类 | ok | ok | ok | |
不同包中子类 | ok | ok | ||
不同包非子类 | ok |
方法重写(Override):
注意:1.重写时,子类中方法的访问控制符不能比父类更严格
2.如果父类的方法使用private修饰的,则在子类就不叫重写(因为子类根本就无法访问父类的该方法,所以不存在重写。)
关键字(supper):
在继承中,调用子类构造方法创建对象时,其实首先会默认调用父类的构造方法创建一个父类对象(现有父类,再有子类)。(想要有儿子,先要有爸爸)
如果子类的构造方法中没有用super显示调用父类的构造方法,系统会默认调用父类无参的构造方法,如果子类的构造方法中使用super显示调用了父类的构造方法,则系统不再默认调用。
关键字(final):
final修饰的变量是常量,常量的值不可以改变
finally捕获异常
注意:在C++等编程语言中存在多继承,但是Java中没有多继承(A不能同时继承B,C),但是Java可以有多重继承
多态的概念:
Java中多态可以分为两类:
1方法的重载、重写
重载:静态多态(编译时多态)
重写:动态多态(运行时多态)
2对象的多态
向上转型:子类对象——》父类对象(格式:父类 父类对象=子类对象)
向下转型:父亲对象——》子类对象(格式:子类 子类对象=(子类)父类对象)(向下转型前一定要先完成一次向上转型)
两种形式的多态:
1.方法的重载、重写;
重载:方法重载值得是在同一个类中,多个方法名相同,参数列表不同(个数、类型、顺序),这就是重载
重写:(覆写,覆盖) 方法重写值得是在继承中,如果父类中某个方法不能满足子类的需求,子类可以重写父类的这个方法,这就是方法重写。