Day-11

主要内容

1.static关键字

2.多态

3.抽象

4.接口

5.设计模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
复习:
this关键字:调用自己的构造方法

super关键字:调用父类的构造方法

实例化对象:new关键字

final关键字:1.修饰类(不能继承)2.修饰方法(不能重写)3.修饰属性(不能更改) 方法重写:方法继承中,子集重写父集

子类实例化一定要实例化父类(super)

Java中的继承是单继承但是具有传递性

object是基类,所有类的父类

static关键字

static修饰属性称为静态属性,静态属性无序实例化,直接通过类名,属性名的方式调用

static修饰方法称为静态方法,静态方法中只能使用静态属性,静态方法也只能调用静态方法

static修饰的属性和方法称为类属性和类方法,实例化出的所有对象中的值,都是一致的。

static修饰代码块,称为静态代码块,会在类加载时首先执行

1
2
3
4
5
6
static{
System.out.println("静态代码块");
}
public demo1{
System.out.println("构造属性");
}

方法重载

发生在同一个类中,方法名相同,方法的阐述个数和参数类型各不相同

可以发生在普通方法、构造方法和静态方法

多态

同个对象在不同场景的多种形态

Java中多态的前提:必须继承,有子类与父类的关系

多态的表现:父类声明指向子类,调用重写的方法,子类执行,称为向上转型,反之为向下转型(强制类型转换来实现)

多态执行中,属性调用父级,重写的方法调用子级,为重写方法调用父级

1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
//向上转换(频率高)
Fu fu = new Zi();
System.out.println(fu.name);
fu.show();
fu.run();
//向下转换
Zi zi = (Zi)fu;
System.out.println(zi.name);
zi.show();
zi.play();
}

抽象类

抽象方法特点:没有方法体(没有大括号)—不能被执行,只能被重写

抽象类不能被实例化,可以被抽象类或普通类继承,只能实例化普通类

抽象的关键字:abstract

abstract标记在类上表示这个类是抽象类

abstract标记在方法上表示这个方法是抽象方法

抽象方法只能存在于抽象类中,但是抽象类中不是只能存在抽象方法

接口

接口不是类,与类平级

接口使用interface关键字代替class

接口中,只能存在静态常量和抽象方法

接口中的变量默认是公开的静态常量,无需加static和final关键字

接口中的方法不加任何修饰符就表示public修饰符

在jdk1.8中,被default修饰的方法,可以使普通方法,其他都是抽象方法,并且省略abstract关键字

接口不能被实例化,需要被实现(就理解为继承即可),接口可以多实现,一个类可以实现多个接口

接口可以理解为一个只有方法的抽象类

抽象类是属于不属于的概念,接口是有没有的概念

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Brid implements Fly, Eat {
public Brid() {
}
//fly方法必须实现
public void fly() {
System.out.println("小鸟在fei");
}
//show方法是被default修饰的,可以选择性实现
public void show() {
}

public void eat() {
}
}

设计模式

创建型模式,结构型模式,行为型模式

在软件设计中,被反复使用的一种代码设计经验