- 三种权限:
- 默认加上的代码 :
- 方法的重载(overload):
- 重写(覆盖)@Override :toString()
- 多态:
- 多态存在的三个必要条件:
- 抽象类
- 接口interface
- 静态属性、静态方法:
1、private:只在当前类里面可以访问(子类也不能访问)
2、public:任何地方都可以访问
3、protected: 包内可以访问
提高代码复用性。
将所有子类共有的属性和方法抽取到父类里面,子类继承父类,那么父类里面的属性和方法相当于子类里面也有。
1、无参构造方法
2、一个类不继承任何类默认继承extnds object
3、类的构造方法第一句会默认加上super
在同一个类里面,允许存在一个以上同名方法,只要他们参数类型和参数个数不同即可。
方法重载特点:与返回值无关,只看参数列表。
即(int x,int b)与(int x,double b)为重载。不看返回值的类型,所以
void show(int a, char b, double c){}与double show(int x, char y, double z){} 不是重载
1、子类覆盖父类,必须保证子类权限大于父类权限才可以覆盖,否则会编译失败。
2、如果父类是private的方法,子类是默认方法,那么子类是不知道这个方法的,不是覆盖。
重载(Overload):同一个类中看同名方法的参数列表。(构造方法重载)
重写(Override):父子类方法要一模一样
1、继承 2、重写 3、父类引用指向子类对象
声明shape变量,new创建对象,调用构造方法Circle进行初始化对象
抽象类1、抽象方法是没有方法体,如果这个类里面有抽象方法,这个类必须变成抽象类。
2、如果这个类是抽象类,并不要求这个类一定要有抽象方法
3、抽象类里面可以有普通方法,也可以有抽象方法。
4、如果一个类是抽象类,那么这个类就不能被new实例化,只能被其他类继承。
5、抽象方法可以理解为父类(抽象类)定义的一个模板或者规范(自己本身不实现),
子类必须实现这个抽象方法,如果子类不想实现这个方法,那么这个子类也必须要变成抽象类。…
接口是一个纯粹的抽象类,所有方法都是抽象方法,不提供实现,所有功能由实现接口的子类去实现
接口就是一个规范,可插拔(可以被替换,首先定义一个标准(接口),大家都遵守这个标准,就可以实现互相之间替换)
接口中的方法都是抽象方法 public abstract
接口中所有的属性public static final定义
final:最终的意思
final变量:这个变量就不能被修改,常量 , 接口里面: public static final double PI = 3.1415;
final类:这个类就不能被继承
final方法:这个方法就不能被重写
public void test1() {
DaYan daYan = new DaYan();
daYan.egg();
daYan.fly();
daYan.print();
// bird是站在AbstractBird这个类角度去看new出来的DaYan这个对象,
// 所以只能看到egg()这个方法
AbstractBird bird = new DaYan();
bird.egg();
// bird.fly();
// bird.print();
// 站在能不能飞IFly的角度去看DaYan,只能看到fly()这个方法
IFly fly = new DaYan();
fly.fly();
//fly.egg();
//fly.print();
fly = new GeZi();
fly.fly();
}
小区里面业主的房子可以看成一个一个的对象,这些都是属于特定的业主所独有。
但是小区里面也有一些公共设施(健身器材、绿地),这些公共设施是属于这个小区的。
但是是可以被所有的业主对象所使用的。
java类里面定义的静态变量和静态方法是属于这个类的,不属于new出来的Student对象,但是可以被所有的对象所使用,当类加载到内存,静态属性和静态方法就可以调用,这个时候没有new任何对象。
使用时候:
1、静态的方法只能访问静态的方法和静态的属性(因为当前对象的实例可以没有创建,
所以静态的方法是没办法调用非静态的方法和属性的)
2、静态的方法中不能写this、super关键字(因为当前的对象实例可能还没有创建,
代表当前类对象的this还有代表父类对象的super可能都还没有创建)
非静态的属性和方法(实例属性和方法)必须通过new对象访问,而静态的属性和方法
是属于类的,在类加载到内存中就可以访问,被所有对象所共享。
PS:
this.id = id; this.id当前类的id,id方法中的id
this()当前类构造方法
super:父类对象
super ():父类构造方法



