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便是指代这个对象.