1.代码块的概述和分类
A.代码块概述
在JAVA中,使用{ }括起来的代码被称为代码块
B.代码块分类
根据其位置和声明的bu't不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块
C.常见代码块的应用
- a.局部代码块
在方法中出现;限定变量生命周期,及早释放,搞定内存利用率
- b.构造代码块(初始化块)
在类中方法外出现;多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行
- c.静态代码块
在类中方法外出现,加了static修饰,用于gei给类进行初始化,在加载的时候就执行,并只执行一次
一般用于加载驱动
2.继承
A.继承(extends)
让类与类之间产生关系:父子类关系
B.继承案例演示
public class Extends {
public static void main(String[] args) {
Cat c=new Cat();
c.color="bai";
c.leg=4;
c.sleep();
c.eat();
}
}
class Animal{
String color;
int leg;
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
}
class Cat extends Animal{
/*String color;
int leg;
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}*/
}
class dog extends Animal{
/*String color;
int leg;
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}*/
}
C.继承的好处和弊端
好处:
- 提高代码的复用性和维护性
- 让类与类之间产生了关系 是多态的前提
弊端:
- 类的耦合性增强
D.类的继承的特点
JAVA只支持单继承,不支持多继承(因为有安全隐患)
JAVA支持多层继承
public class ji {
public static void main(String[] args) {
DemoC C=new DemoC();
C.show();
}
}
class DemoA{
public void show() {
System.out.println("huhu");
}
class DemoB extends DemoA{
public void print() {
System.out.println(" jiji");
}
class DemoC extends DemoB{
public void show() {
System.out.println(" xiix");
}
}
E.继承的注意事项
- 子类只能继承父类所有非私有的成员(成员变量和成员方法)
- 子类不能不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法
- 不要为了部分功能而去继承
- 子父类出现同名变量 采用就近原则
F. this和super的区别和应用应用
this和super代表什么
this:当前对象的引用,谁来调用我,我就代表谁
super:当前对象父类的引用
使用区别:
1.调用成员变量
this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
super.成员变量 调用父类的成员变量
2.调用构造方法
this(...)调用本类的构造方法
super(....)调用父类的构造方法
3.调用成员方法
this.成员方法 调用本类的成员方法,也可以调用父类的成员方法
super.成员方法 调用父类的成员方法
G. 继承中构造方法的关系
子类中所有的构造方法默认都会访问父类中空参数的制造方法,因为子类会继承父类中的数据,可能hai还会使用父类的数据。所以子类在初始化前,一定要先完成父类数据的初始化
H. 方法重写概述
重写:当子父类出现了一模一样的方法
重写的应用:当子类需要父类的功能,二功能主题子类有自己特有内容时,可以重写父类中的方法。这样,既沿袭了父类的功能,又定义了子类特有的内容
方法重写(override)和方法重载(overload)的区别:
overload可以改变返回值类型,只看参数列表
方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关 返回值是一致的
方法重载:本类中出现的方法名一样 参数列表不同的方法 与返回值类型无关
子类对象调用方法的时候:先找子类本身 再找父类
注意事项:
- 父类中私有方法不能被重写 因为子类无法继承
- 子类重写父类方法时 访问quan权限不能更低 最好一致
- 父类静态方法 子类也必须通过静态方法进行重写
- 子类重写父类方法时 最好声明一模一样
H. final关键字修饰类,方法及其变量的特点
final修饰特点:
- 修饰类 类不能被继承
- 修饰变量 变量就变成了常量 只能被赋值一次
- 修饰方法 方法不能被重写