欢迎光临散文网 会员登陆 & 注册

extends继承和override重写的用法

2022-06-15 20:29 作者:虚云幻仙  | 我要投稿

/**
* 测试extends继承 java三大属性之一
* 测试override重写
* 测试final修饰
*/


class Children{
   String name;
   int age ;
   Children friend;
   public void pn(){
       System.out.println(name);
   }
}

class Student1{
   String name;
   int age ;
   Children friend;
   public void pn(){
       System.out.println(name);
   }
   //属性方法和Children一致
   String major;
   public void pm(){
       System.out.println(major);
   }
}

class Student2 extends Children{
   //继承了Children类的所有内容 name age pn friend
   public void pa(){
       System.out.println(age);
       //直接调用继承过来的的age
       pn();
   }
   String major;
   public Student2(String name,int age,String major){
       this.name = name;
       this.age = age;
       this.major = major;
   }


public class TestExtends {
   public static void main(String[] args) {
       Student2 s1 = new Student2("a",10,"Math");
       System.out.println(s1 instanceof Student2);
       //instanceof运算符 判断对象s1是否属于类Student2
       System.out.println(s1 instanceof Children);
       //判断s1是否属于父类Children 结果true
       Student1 s2 = new Student1();
       System.out.println(s2 instanceof Student1);
       //System.out.println(s2 instanceof Children);报错 结果false
   }
}


}

class Student3{
   //不写明extends 默认 Student3 extends java.lang.Object
}

class Student4 extends Children{
   Student4 friend;
   //重写override 把Children类里的friend属性重定义,父类原始属性不受影响
   //重写的范围小于等于父类的原型 父类的friend是Children型 子类是Student4小于等于Children

   short age;
   //父类age是int 子类age是short小于等于int
   public void pn(){
       System.out.println("The name is "+name);
   }
   //对原方法重写 更改内容
}

final class Student5 extends Children{
   //final修饰的类不能再往下继承 常见String Math类都是final
   final int age =10;
   //继承的属性可以final 不可再修改 不影响父类age
   final public void pn(){
       System.out.println(""+name+age);
   }
   //final的方法不可重写 可以重载overload
}

extends继承和override重写的用法的评论 (共 条)

分享到微博请遵守国家法律