第十一天:static关键字、final关键字及抽象类和抽象方法


static关键字(用static修饰的内容不是存在堆和栈中,而是存在常量池中,常量池实现数据共享)
static关键字特点:数据共享
static修饰常量:数据共享
访问修饰符 static final 数据类型 PI=常量值;
为什么用static修饰常量?
因为常量都是固定的值,如果不用static修饰那么每个对象访问该常量时都会在内存中开辟一份空间,这样对虚拟机会增加负担,如果用static修饰则只会执行一次(把常量放在常量池中)
static修饰属性:静态属性(属性共享,随类的产生而产生)
访问修饰符 static 数据类型 属性名;
static修饰方法:静态方法(方法共享)
① public static 数据类型 属性名(形参列表){}//因为static是共享的,所以一般都用public关键字
②用static修饰的方法属于静态方法,静态方法不能使用非静态成员(即调用的方法或者属性都必须是用static关键字修饰的)
static修饰代码块:静态代码块(每个对象加载类的时候,只有第一个对象会对静态代码块进行加载,后面的对象不会加载)
static{
xxxxxx
}
实例代码块:随着对象产生执行(与静态代码块不同的是每次创建对象加载类的时候实例代码块都会被加载)
{
xxxxxxx
}
注意: ①用static修饰的属性和方法因为是共享的,所以都是通过类名.方法名和类名.属性名进行调用的;
②父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法(静态方法可以被自己所存在的类重载);
③子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(多态);

在静态方法中如何调用非静态方法?
public static void fun(){
本类类名 p = new 本类类名();
p.showInfo();
}

public void showInfo(){
xxxx;
}


this,this(),super,super()
this关键字:代指调用该方法或者属性的当前对象(this.全局变量)
this(形参列表):只能用在构造方法中,当在一个构造方法中调用另外一个构造方法的时候可以用this(形参列表),但是this()只能放在构造方法的第一行
super关键字:前提是有继承关系,super表示当前父类对象,当父类和子类有相同的属性时,为了区别父类和子类属性用super指代
例如:this.name指代子类的属性
super.name指代父类的属性
super(形参列表):与this(形参列表)类似,super()表示调用父类的构造函数(出现在子类的构造函数中),只能放在第一行,所以在子类的构造函数中this()和super()不能同时出现

继承(使用extends关键字)
继承是指子类可以拥有父类定义的所有内容
为什么使用继承?
减少多个类存在大量的重复属性和方法。
继承关系中,子类对象创建时必须准守先执行父类的构造方法,再执行自己的构造方法(有时候在子类的构造方法中没有出现调用父类的构造方法语句,这是因为虚拟机会自动调用super(),只是没有在代码中显示)
继承特点:①单根性:单一继承(即一个类一次只能有一个父类)
②相对性:子类和父类关系只是相对而言的。
③传递性:A extend B;B extends C

注意:子类继承父类不能继承父类的构造方法,java编译器会自动在子类的构造方法中调用父类的构造方法(通过super()语句完成)完成对象创建和属性赋值。


方法的重写(方法前用@override)
父类和子类出现同名,同参,同返回值类型的叫重写(重写时子类的访问修饰符不能比父类范围小)
对比重载:①重载是指形参类型,形参个数,形参顺序不同(只要有一项不同就是重载)
②重载发生在同一个类中,而重写是以继承为前提,是发生在子类和父类之间的。

需要免费的java基础视频和java企业级开发视频以及项目实战(包含SSM框架详细讲解、activiti流程引擎、springboot、springcloud视频讲解和项目实战课程)可以添加qq:1743337375

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值