Java继承(extends)的实现和 instanceof 运算符的使用

  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    房廷飞        期待明天更好的自己!

猜你喜欢

转载自www.cnblogs.com/fangtingfei/p/10498857.html
今日推荐