java接口、继承、多态

  • 类的继承:子类通过extends关键字实现对父类的继承,继承之后可以通过子类访问父类的public和protected方法,此外还可以在子类中通过super调用父类的构造方法和public、protected方法
  • 类的重写:子类创建和父类相同名称的方法,更改方法的返回值、成员方法的存储权限
  • 类的重构:子类的方法和父类的方法参数、返回值,存储权限全部一致,只有实现的方式不同叫做类的重构
  • 子类为什么需要调用初始化的super()?

在构造函数中,如果第一行没有写super(),编译器会自动插入;需要注意的是子类不是一定要初始化父类,但当父类没有无参数的构造函数时或者无参数构造函数为private时,需要手动调用有参数的构造函数;

  • 子类自动调用父类的构造函数,调用的顺序为:顶级父类——>···父类——>子类
  • Object中的方法
在Obect类中主要包括equals、toString、clone、finalize方法
常用的方法:
getClass().getName() // 获取当前执行的类的方法,可以toString方法一起使用
toString() // 当打印新建的对象时,会自动调用类的toString方法,打印toString的返回值
equals() // 比较两个对象的内存地址,如果知识单纯想比对两个变量的值,重写equals方法

  • 向上转型:将子类的实例赋值给父类的对象

Parent p = new Childrn();

  • 向下转型:将父类的实例赋值给子类的对象,此时必须强转

Children c = (Children)(new Parent());

  • instanceof

myInstance instanceof MyObject
判断对象是否是一个类的实例,可以用此方法先判断,然后强转

  • 方法重载:在类中可以存在多个相同名称的方法,只需要方法的参数个数或者类型不同,叫做方法的重载
  • 不定长参数,可以通过不定长参数实现方法的灵活重载
// 这里不定长参数a就是一个数组,相当于int[] a
public void test(int... a){
    for (int i: a){
        System.out.println(i);
    }
}
  • 多态:简单理解多态实际上是在父类的方法中通过判断继承类的类型来实现不同的功能,这样避免重复定义方法名,这就是多态
  • 抽象类与接口:
抽象类abstract几个点:
1.只要抽象类中存在抽象方法,那么这个类必须是抽象类
2.子类继承抽象类,必须重写所有的抽象方法
3.抽象类的弊端:必须要这些功能的子类也必须重写抽象方法;抽象类不能多继承

接口interface:由于抽象类的种种弊端,出现了接口,接口是抽象类的延伸,可以看作是纯粹的抽象类
1.在接口中定义的方法必须是public或者abstract
2.在接口中定义的任意字段均是staticfinal3.接口可以像类一样被public装饰,前提是接口名称与其文件名同名
4.将抽象类和接口联合使用,继承抽象类并且可以多继承接口

猜你喜欢

转载自blog.csdn.net/wangjunjie0817/article/details/89138042