Java 多态
1.引用的多态
父类的引用指向本类的对象
Animal obj1=new Animal();
父类的引用指向子类 的对象
Animal obj2=new Dog();
2.方法多态
本类方法:创建本类对象时调用的方法
子类重写:创建子类对象时调用的方法
引用类型转换
1.向上类型
由小到大 (无风险)
Dog dog=new Dog();
Animal animal=dog;
2.向下类型
由大转小 (溢出)
Dog dog=new Dog();
Dog dog1=animal; // 报错
3.利用instanceof 运算符解决风险问题
抽象类:
限制规定子类必须实现某些方法
Telphone 父类(抽象类)
public abstract class Telphone {
public abstract void call();
public abstract void sendmessage();
}
cellphone 类继承父类
package demo3.com;
public class cellphone extends Telphone {
@Override
public void call() {
System.out.println("语音");
}
@Override
public void sendmessage() {
System.out.println("语音");
}
}
smallphone 继承父类
package demo3.com;
public class smallphone extends Telphone {
@Override
public void call() {
System.out.println("打电话");
}
@Override
public void sendmessage() {
System.out.println("发信息");
}
}
测试类
package demo3.com;
public static void main(String[] args) {
//抽象类的父类引用指向子类cellphone,调用方法
Telphone tell =new cellphone();
tell.call();
tell.sendmessage();
//抽象类的父类引用指向子类smallphone,调用方法
Telphone tell1=new smallphone();
tell1.sendmessage();
tell1.call();
}
}
idea 在新建一个class的时候可以选择继承的父类
1.把光标放在父类名称上按alt+enter可以生成子类
2. 选中implement abstract class
接口
概念:
接口可以理解为一种特殊的类,由全局常量和公共的抽象方法组成
语法:
[修饰符] interface 接口名 [extends 父接口] {
}
越努力越幸运