1.自动转型多态
1)自动转型的定义:父类名 变量名 = new 子类名
2)多态表现为同一个类型的对象,调用同一个方法,但是其执行过程不一样
3)代码举例:
public class A{ public void say(){ System.out.println("A的方法") } } public class B extends A{ public void say(){ System.out.println("B的方法") } } public class Main{ public static void main(String[] args){ A a = new B(); A a1 = new A(); a.say(); a1.say(); } } 如上所示,a1和a是同一类型的对象,但是当子类重写了父类的方法后,a输出的是B的方法,而a1输出的是A的方法,这就体现了Java的多态性。
2.类的分类
1)普通类:普通类中的变量不约束,可以定义变量,也可以定义常量
普通类中的方法只能是普通方法和构造方法
2)抽象类:抽象类中可以定义变量,也可以定义常量
抽象类中的方法可以是抽象方法,也可以是普通和构造方法
3)接口类:接口类中只能定义常量
接口类中的方法只能为抽象方法
3.类的定义方式:
1)普通类:public class 类名{}
2)抽象类: public abstract class 类名{}
3)接口:public interface 接口名{}
4.方法的分类
1)普通方法的定义是public 返回类型 方法名(参数列表){}
2)抽象方法的定义是public abstract 返回类型 方法名();
3)构造方法的定义是public 类名(){}
publci class Test{ //普通方法 public void say(){ } } public abstract class Test{ //抽象方法 public abstract void say(); } public interface Test{ //抽象方法,只是省略了static final public void say(); } public class Test{ //构造函数 public Test(){} }
5.继承
1)接口的继承方式:通过implements关键字来继承
2)抽象类的继承方式:通过extends关键字来继承
3)如果是普通类继承抽象类或接口,则普通类要重写父类的抽象方法
6.注意事项:接口和抽象类不能构造对象
extends是单继承的
implements是多继承的
6.This的使用
This指代一个对象,只要找到this所在的方法之后,再找到调用改方法的对象,this便是指代这个对象.