1.今日单词:
Override:重写重写覆盖
Annotation:注解
abstract:抽象
2.方法重新:如何判断调用的是谁?
等号左边调用的是是谁就用谁。如果方法重写,那么等号右边是谁调用的就是谁有没有向下转变?有,但是不安全。可以加判定保证安全instanceof多态的时候,什么时候选择抽象类,什么时候选择普通类?方法中没有具体实现的行为就选抽象类,普通类要有共性。
多态存在的三个必要条件:
继承
重写
父类引用指向子类对象(Parent p = new Child();)
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。(很重要!!!)
多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
多态的实现方式:
方式一:重写
方式二:接口
生活中的接口对应的就是插座,如一个三头的插头可以接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型
。
java中的接口串联生活中的接口,就是一些方法特征的集合,但没有方法的实现。接口的定义:接口是一种公共的规范标准,只要实现了这个接口的规范标准就相当于有某个功能。
接口和类有什么区别:
类 接 口
class interface
方法 抽象方法
变量 常量
构造方法 不能有构造函数
静态成员 静态常量
静态代码块 不能有代码块
创建对象使用 通过实现类对象 来使用
接口可以包含:
1.常量2.抽象方法3.替代方法4.静态方法
抽象方法:
abstract public abstract可以省略
静态方法的调用:
1.接口的静态方法只能使用接口名调用接口名。
2.静态方法不能使用实现类类名去调用。
创建接口是接口public interface接口名{
//抽象方法/规范
}
实现接口实现接口名public class类名实现接口名{
//转化抽象的方法
}
实现接口方法先创建对象,在调用方法public static void main(String [] args){
类名变量名= new类名();
变量名。方法();
}
接口的注意事项:
1.接口是没有静态代码块和构造函数的。
2.一个类的直接父类是唯一的 但是一个类可以实现多个接口。
3.如果实现类所实现的多个接口种 存在重复的抽象方法 那么只需要覆盖重写一次就可以。
4.如果实现类 没有覆盖重写所有抽象方法 那么实现类是一个抽象类。
5.如果实现类 实现多个接口种 存在默认的方法 那么实现类一定要对冲突的默认方法覆盖重写。
6.一个类 如果直接父类当中的方法 和接口的默认方法产生冲突 优先使用父类中的方法。
7.接口之间的继承是多继承。
多态和接口:经典案例:
老张开车去东北人,车,地点。(字符串)公共类Person(){}公共类汽车(){}包ExtendsDemo6;公共类人{
字符串名称;
公共无效驱动器(汽车){
car.run(name); }
}公共类Car {
字符串名称;
public void run(String name){
System.out.println(name +“开着小汽车” +“去东北”);
}}
软件包ExtendsDemo6;导入Demo.hebei1.Person;公共类Test {
public static void main(String [] args){
person p = new person();
p.name =“老张”;
Car car = new Car();
car.name =“宝马”;
p.drive(汽车);
}
}