对象打印出来是:包名.类名@哈希code
把toString方法覆盖掉以后,打印的就不是哈希code
父类有,子类有,调用子类的
有地址有空间这个对象就能用,空指针错误是因为这个对象没有地址
抽象
抽象类 : 1)用abstract修饰的类
2)如果使这个抽象类有意义,必须要有至少一个抽象方法(方法只有声明部分,没有实现部分)
public abstract class computer{//抽象类computer
public abstract void a(); //抽象方法 a()
}
3)用抽象类的实际意义就是为了定义一些规范和标准
4)抽象类不能被实例化,必须由子类来继承这个抽象类 形式:子类 extends 抽象类
声明父类=创建子类
5)抽象类也有构造器,空的无参数的构造器
6)抽象类中也可以有非抽象的方法
7)抽象类是类,所以具有类的所有特征
接口 1)用interface修饰
2)接口所有的方法全是抽象方法,abstract可以省略
3)接口所有的修饰词(权限符)全是public
4)接口里所有的变量全是常量,不可改变的 省略了public static final
public interface MainBoard{
int i =10; //1)
public static final int i = 10;//2) 1)<=>2)
public static void cpu();//3)
public void cpu(); //4) 3)<=>4)
}
5)接口也不能被实例化,必须靠一个类来实现 形式:类 implements 接口
6)如果用一个类来实现一个接口,必须实现这个接口所有的方法
抽象类和接口到区别:
1)接口是全标准的,一个都违反不了的
2)接口可以多继承的,如果一个类实现了一个子接口,必须连同他所有的父接口里的抽象方法也全部实现
3)抽象类是一种半标准,具备特性的