Java具有四大特性:封装,继承,抽象,多态
继承:
1):什么是继承呢?继承是面对对象一个很显著的特征,它是 从已有的类中派生出新的类,而新的类吸收已存在的类的属性和方法,并且新的类还可以生出新的方法。也可以理解成引用已有类型的属性和方法。被继承的类叫做父类(超类,基类),新的类叫做子类(派生类)。
2)作用(目的):继承可以复用以前已存在的数据类型,使得许多程序变的简单起来,花费的时间、精力更少。
3) 使用类型:在父类和子类具有共同点的时候就可以用到继承,更重要的是可以有多个子类、父类,可以一对一,一对多,多对一,多对多。
比如:
people类
(public) class people{
public static void main(String[] args) {
String name
int age
char sex
......
System.out.println("name,age sex...");
student 类
public class student extends people{
public static void main(String[] args) {
super(name,age,sex);
int num
void study
.....
上述程序中,student和people两个类中具有一些共同特征(name,age,sex...),所以为了编写方便,可以使用继承这一种方法,
四大修饰符类型:
修饰符有四种类型(对应继承范围不同):public、protected、默认、privates。其中
public修饰的父类中继承范围最广,应该是所有的子类都可以继承,用一个类、同一个包、不同包下都可以继承。
protected修饰的父类中继承范围次之,同包下、不同包下的子类,但是不能被外部包所继承。
默认的继承范围再次,只能被当前包下的子类继承,包外的将不能继承。
private的继承范围最少,只能被当前类所继承,当前包的其他类,包外子类都不能继承。
下面整理成表,方便理解:
当前类 | 当前包下的类 | 包外子类 | 外部包 | |
public | OK | OK | OK | OK |
protected | OK | OK | OK | |
默认 | OK | OK | ||
private | OK |
(现目前了解的就是这四种修饰符类型)
关键字(this,super,final)
this关键字:(从本质上讲,this是一个指向本对象的指针,而super是一个java关键字)
1):有时候我们要用到一些内部类和匿名类,此时运用的this指的是匿名类或内部类本身,而当我们需要调用外部类的属性和方法的时候,就得加上外部类的类名。
2):在构造函数中,通过this可以调用同一类中别的构造函数。
final关键字:
final关键字有“无法改变的”“终极的”含义,(其中包括final类,final方法,final变量,final参数)也就是说被final修饰的属性或者方法,值一旦给定将不能被更改,当然final变量可以先声明,而不给初值,这种变量称作空白变量,无论什么情况,编译器都确保空白final在使用之前必须被初始化。
super关键字:
super关键字和this类似,都是继承是调用属性和方法时使用,super可以直接调用参数,也就是父类中已存在的数据类型可以直接调用。。。。。。
子类的构造函数如果要引用super的话,必须把super放在函数的首位.需要引用this时也必须放在函数的首位,而且不能同时出现在一个函数中(this构造函数会调用其他的构造函数,当然也包括由super调用的函数)
数据引用类型:分为:值传递(简单数据类型传递)和引用传递(复杂数据类型传递)
值传递也叫简单数据类型传递,共有八大基础类型:byte,int,float,double,short,long,char,boolean。是指直接包含值的类型。
引用传递:除开值传递外的数据类型都叫做引用传递。
对象就是引用,原始类型就是值传递,其实最主要的是会不会对原对象产生改变。值传递函数接收的是原始值的副本,而引用传递接收的是原始值的内存地址,not值的副本。
父类引用指向子类实体,强制转换:(people,student,techer)