面向对象要点
1、概念
1、面向对象的特点
- 封装
- 继承
- 多态
2、静态与非静态方法
1、静态方法(Static method)
1、静态方法可以直接被其他类调用,调用格式为 : 类名.方法名()
//方法定义 public static void sayHellow(){ System.out.println("Hellow"); } //方法调用 public static void main(String[] args) { Student.sayHellow(); }
2、静态方法不可以调用非静态方法,静态方法可以调用静态方法,非静态方法可以调用静态方法
静态方法跟着类一起存在,而非静态方法必须实例化以后才存在
2、非静态方法
1、访问方式
实例化对象以后再访问
3、类的特点
1、继承
1、java中所有的类都默认继承object类
2、java中不可以多继承,一个父亲可以有多个儿子,每个儿子只能有一个父亲
3、私有的东西无法被继承
4、super用于在子类中调用父类的东西
5、子类进行无参构造时,会先调用父类无参构造,再调用子类无参构造。如果父类没有无参构造,则子类的无参构造也无法使用。
2、重写
1、重写需要有继承关系,子类重写父类的方法
2、方法名必须相同,参数列表必须相同
3、修饰符只能缩小,不能扩大
4、抛出的异常范围只能缩小,不能扩大
对于静态方法,不会被重写,方法的调用只与数据类型有关
对于非静态方法,会被重写,注解为@Override
3、多态
1、父类的引用可以指向子类
class Person;
class Student extends Person;
Student A = new Student();
Person B = new Student();
Object C = new Student();
2、对象能执行哪些方法,看对象的左边;
3、instanceof关键字
用于判读某一类是否是其继承自其他类
4、abstract 抽象类
抽象类不能new出来,只能通过子类继承来实现实例化
抽象方法只有方法的声明,没有方法的实现。
5、interface接口
约束和实现分离
方法 public abstrict
变量 public static final
6、final定义的类不可以被继承
4、java的五种类
1、内部类
1、定义和实例化
//内部类的定义
public class Outer {
private int number;
public void outer(){
System.out.println("这是一个外部类");
}
public class inner{
private int age;
public void inner1(){
System.out.println("这是一个内部类");
}
}
}
//内部类的实例化
public class Test {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.inner inner = outer.new inner();
inner.inner1();
}
}