一:继承: 父类具有的子类直接具有,是什么是什么的关系,如狗是动物。
1: java单继承 ,一个类只能继承一个直接父类 没有声明默认是java.lang.Object。
protected String name; //protected是专门给子类继承的关键字。
属性和方法可以被子类继承;构造方法不能被继承。
构造对象时系统会先构造父类对象在构造子类对象 Object-->person-->student
public void showInfo() { super.showInfo() ; //调用父类的showInfo方法 }
this.name="aaa";//调用自己的属性
super.name="bbb" ; // 调父类的属性
二: 类型的转换:
使用instanceof运算符来确定对象的类型 if (stu instanceof person)判断指定的对象是否是当前类的对像。
子类对象可以隐含扩展为父类型:
需要一个人来一个人范围内的都可以,但是需要一个学生来一个人(可能是老师等)就不行 。
Student stu = new Student();
Person p = stu;
父类转子类必须明确声明转化为子类型:
Student stu=(Student)p;(这样的转换必须确定p是个学生,才能转换成学生,这种代码谁转换谁负责)不是所有的父类都能转化成子类!!!!
三: 重写:
1:一定有两个类,这两个类有集成关系(父子)。2:子类对父类中的方法重新写,方法的名称,参数个数,类型都要相同。
@override用于检查是否是方法的重写。
方法的覆盖:方法名相同,参数相同,返回值相同,访问权限只能更大。抛出异常不能更宽泛。
四: static修饰符
静态修饰符,静态就是在编译之后所分配给他的内存会一直存在,直到程序退出。普通的想要访问某类的成员变量需要实例化对象然后访问成员,而用static修饰之后的成员变量,可以不用实例化对象直接就可以访问。
static代码块,类加载时会调用static代码块,对静态属性进行初始化赋值。 只会一次加载。
五: final:
final类不可以有子类(不能被继承) ,final修饰的变量 设置之后不能被修改。final修饰的方法不能被子类重写。
六:abstract 抽象类和方法
抽象类的存在是为了让子类继承实现,抽象方法在自己类中不实现,留给继承的子类实现
抽象方法必须在抽象类中,但是抽象类中不一定有抽象方法。
七:接口
接口是特殊的抽象类,接口中的方法都是只声明不实现
接口的理解:老师讲的:
接口,主板,声卡,显卡
定义两个接口,(制定两个规格),主板上设置两个接口添加get 和set方法,声卡继承接口的方法并实现,显卡继承接口的方法并实现,入口函数中(组装),拿来一个主板,显卡,声卡,实例化主板,显卡,声卡。调用主板的set设置显卡装上,调用他的方法实现功能;调用主板的set设置显卡装上,调用他的方法实现功能;