访问修饰符:
修饰符有4个: private ,默认 , protcter , public。
本类 同包子类 同包非子类 非同包子类 非同包非子类
private √
默认(同包) √ √ √
protected √ √ √ √
public √ √ √ √
面向对象的特点:
1.对象:万物皆对象,对象因关注而产生。
2. 类:是对象的抽象。
3. 属性:是对象身上的值数据。
4. 行为:是对象的功能。
可选修饰符:可选修饰符现在学了4个:static,abstract,final,default
abstract:
1.用处:类,接口,方法中。
2.意义:
1这个类不能被实例化(即不能产生对象),而且可能包含未实现的方法。
2所有接口都是抽象的,声明接口的时候这个是可选修饰符,不写默认。
3这个方法没有方法块,也就是主体实现部分。主体由子类书写,直接分号结束。
4所在类也必须是抽象的。
final:
最终类或最终方法,不能被改变不能被重写
继承:
定义:是类与类之间的关系,把具有相同的属性和行为进行抽取,设计为父类。子
类通过继承,就可以自动具备父类的属性和行为。
关键字:extends
注意:Java是单继承 每个子类只有一个父类 object是最高父类
多态:
定义:相同的行为,不同的实现。
分为:静态多态,和动态多态。
类型转换:
1.向上转型:把子类的对象赋给父类的变量。 (一定成功)
2.向下转型:把父类的值(引用值)赋值给子类的变量。(不一定成功)与Java基础的强转类似
向下转:需要用到关键字 instanceof
用于判断前面的变量,是否指向后面的类型。
动态绑定机制:
当使用向上转型时,并且子类重写了父类的方法,则使用父类引用调用该方法时,会自行去执行子类重写的方法
this 与 super:
this:指代调用当前本类对象的方法或熟悉
this()代表调用同一个类的其他构造器。
注意:this()只能放在构造器的第一句。
super:
1.super()调用父类的指定构造,也只能放在构造器的第一句,和this()
不能同时出现。
2.super()有默认,不会写也有(调用父类无参),this()没有默认。
抽象类:
有抽象方法的类一定是抽象类。用abstract修饰
特点:1抽象类不能创建对象
2抽象类中可以重载构造方法。
3抽象类中只要有一个抽象方法就为抽象类
注意:子类继承抽象类,必须实现抽象类中的所有抽象方法,除非这个类也是抽象类。
接口:
是一种数据类型,是比抽象类更为抽象的一种表现形式 不是类
接口创建只需要将class替换为interface 名字后加上Inter
是一种数据类型,是比抽象类更为抽象的一种表现形式 不是类
接口创建只需要将class替换为interface 名字后加上Inter
实现:
抽象类可以让别的类继承,而接口需要其他类实现---和继承类似,在类名后书写implements
例:Learn2 implements Lear2Inter
表示 实现类 implements 接口
在实现一个接口时有两种选择:
1. 不去实现方法,将该类声明为抽象类
类可以多实现接口,并且还可以继承时同时多实现
一个接口可以有多个抽象方法,一旦有一个实现类来实现接口,则需要都实现
如果有一个抽象方法没有实现,则需要将该类定义为抽象类
接口可以多继承接口
接口可以创建对象 :接口引用类型对象