java-se-02
java
1 封装
封装:一种将抽象性函式接口的视线细节部分包装、隐藏起来的部分
封装的优点:
- 良好的封装能够减少耦合
- 类内部的结构可以自由修改
- 可以对成员变量进行更精确的控制
- 隐藏信息,实现细节
2 继承
- extends:只能继承一个类
public class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
//初始化属性值
}
public void eat() { //吃东西方法的具体实现 }
public void sleep() { //睡觉方法的具体实现 }
}
public class Penguin extends Animal{
}
- implements:可以变相的使java具有多继承的特性,使用范围为类继承接口的情况
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
this关键字:指向自己的引用,引用当前对象,即它所在的方法获构造函数所属的对象实例
class Animal {
void eat() {
System.out.println("animal : eat");
}
}
class Dog extends Animal {
void eat() {
System.out.println("dog : eat");
}
void eatTest() {
this.eat(); // this 调用自己的方法
super.eat(); // super 调用父类方法
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog d = new Dog();
d.eatTest();
}
}
final 修饰的变量、方法和类
构造器
子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显示)。如果父类的构造器带有参数,则必须在子类的构造器中显示地通过super关键字调用父类的构造器并配以适当的参数列表。
3 多态
多态是同一个行为具有多个不同表现形式或形态的能力
多态就是一个接口,使用不同的实例而执行不同操作
多态存在的三个必要条件:
- 继承
- 重写
- 父类引用指向子类对象:
Parent p = new Child();
多态实现的方式:
- 重写
- 接口
- 抽象类和抽象方法
3.1 Override/Overload
Override:重写,实在子类存在方法与父类的方法的名字相同,而且参数的数量不同或数量相同而类型和次序不同
Overload:重载,是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
总结:方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现
3.2 抽象类(abstract)
- 抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象。
- 抽象类不一定包含抽象方法,但是抽象方法的类必定是抽象类
- 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能
- 构造方法,类方法(用static修饰的方法)不能声明为抽象方法
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类
3.3 接口
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的
- 接口中不能含有静态代码块以及静态方法(用static修饰的方法),而抽象类是可以有静态代码和静态方法
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口

浙公网安备 33010602011771号