java基础知识总结(二)

八,继承

  • 1.子类可以继承父类所有的属性和方法
  • 2.先执行父类的属性初始化 构造方法 再执行子类的属性初始化和构造方法
  • 3.final:可以修饰属性,方法,类
    final属性一旦赋值就不可以再更改
    final方法不可以被子类覆盖,即子类不可重写
    final类不可以被继承,即没有子类
  • 4.super:调用父类的属性和方法
    super.属性名 super.方法名
    子类的构造方法默认隐式调用父类的无参构造方法,
    若要调用父类有参的,要写在子类构造方法第一行
    若父类没有无参构造函数,即父类有自己的有参构造函数,又未在子类调用,则会报错。
  • 5.object类
    若未写extends,则默认继承object类,其方法适用于所有类。
  • 6.to string:返回类的地址
    菜单栏source中有general to string方法,可以重写to string方法,
    即输出类名时,不再输出字符串地址(哈希code),而是属性名和值
  • 7.equals:返回两个类是否相等
    比较的是地址,因为这是地址的引用,不能比较属性值是否相等
    重写后就可以比较二者属性值是否相等了,(类对象是属性和方法名 类的对象是具体的变量值)

九,多态

  • 1.继承是多态的基础
  • 2.1引用多态:
    父类引用(对象)可以指向本类/子类的对象
    Animal animal1= new Animal(); Animal animal2 = new Dog(); Animal animal3 = new Cat();
  • 2.2.方法多态:子类可以调用父类/本类重写的方法
    animal1.eat(); animal2.eat(); animal3.eat();

但是父类的引用不可以调用子类的独有的方法

  • 3.类型转换:
    强制类型转换: 向下类型转换 比如水壶到杯子
    隐式/自动类型转换:向上类型转换 比如杯子到水壶
    为了防范出现错误,可以用instanceof来判断是否是某个类的实例,
Dog dog = new Dog();
Animal animal = dog; 自动类型转换
if(animal instanceof Cat){
Cat cat = (Cat)animal; 强制类型转换
}
else{
System.out.println(“无法进行类型转换”);
}
  • 4.抽象:abstract
    抽象方法只能声明,不需要实现
    包含抽象方法的是抽象类
    抽象类中可以有普通方法
    抽象类不能直接创建,可以定义引用类
  • 5.接口:interface
    public interface 接口名 【extends 父类 】{
    多个常量 (public static final系统会自动添加)
    多个抽象方法
    }
  • 【】里为可选项 extends 父类 implements 父接口
    继承要在实现之前
原文地址:https://www.cnblogs.com/1997Ff/p/7498545.html