extends在英文意思上看是“继承”的意思。子类是父类的拓展,例如我们要新定义一个Student类,发现Student类里的很多属性或方法在Person中都都是重复的,我们就可以让Student类继承Person类,使Student类拥有Person类的属性和方法。
话不多说,上一个demo,知识都在例子里体现。
package com.ftf.o;
/**
* 测试继承
* @author 房廷飞
*
*/
public class Extend {
public static void main(String[] args) {
Student stu=new Student();
stu.hight=170;
stu.major="通信工程";
stu.name="房廷飞";
stu.rest();
stu.study();
Student stu=new Student("房廷飞",170,"通信工程");
stu.study();
}
}
class Person{
String name;
int hight;
public void rest() {
System.out.println("休息一会儿吧!");
}
}
class Student extends Person{
String major;
public void study() {
System.out.println("我正在学习!");
}
public Student(String name,int hight,String major) {
this.name=name;
this.hight=hight;
this.major=major;
}
public Student() {
}
}
在eclipse中,选中一个类,按右键选择Open Type Hierarchy或按F4键可以看到类型的继承层次。例如我们看Student的继承情况:
继承的使用要点:
· 父类也叫超类,基类,派生类。
· Java中只有类只能单继承,类只能继承一个类。
· Java中类没有多继承,接口有多继承。
· 子类继承父类,可以得到父类的所有类和方法(除了父类的构造方法),但不一定能直接访问(such as 父类私有的类和属性)
· 如果调用一个时没有调用extends,则他的父类是java.lang.Object。
instanceof 运算符的使用
instanceof是二元运算符,左边是对象,右边是类,当对象是右边类或子类所创建的对象时,返回true,否则返回false。
如在上面代码的基础上,我们测试一下:
public class Test{
public static void main(String[] args) {
Student s = new Student("小飞",172,"Java");
System.out.println(s instanceof Person); //true
System.out.println(s instanceof Student); //true
}
}
2019-03-08 23:38:21 房廷飞 期待明天更好的自己!