zoukankan      html  css  js  c++  java
  • 继承(二)

    1.继承(extends)
      1.1继承:遗传
      1.2语法:
        public class 子类 extends 父类{
        }
        eg:
          public class Dog extends Pet{
          }
      1.3继承的特点
        a.子类可以继承父类的非私有的属性和方法
        b.不能继承构造方法
        c.继承默认权限修饰符的方法和属性,子类和父类必须在同一包中
      1.4super(父类)
        super.属性名 //表示访问父类的属性
        super.方法名(参数) //表示访问父类的方法
        super(参数) //表示访问父类的构造方法
        注意:super()访问父类构造函数时,必须写在第一行
      1.5访问修饰符总结
        访问修饰符     本类   同包    子类   其他
        private 私有的      #
        默认(friendly)   #     #
        protected 受保护的   #     #     #
        public 公共的         #     #      #     #

    2.抽象类(abstract)
      2.1 抽象类
        语法:public abstract class 类名{};
      2.2抽象方法
        语法:public abstract 返回值类型 方法名(参数列表)
          eg:public abstract void print();
        注意:抽象方法有abstract修饰,并且抽象方法没有方法体
      2.3抽象类和抽象方法的特点
        a.都用abstract修饰
        b.抽象方法没有方法体
        c.抽象类不能实例化,并且继承抽象类的子类都必须重写抽象类中的所有抽象方法
      注意:
        a.抽象类中不一定有抽象方法
        b.含有抽象方法的类,一定是抽象类(接口)

    3.重写
      3.1重写就是子类重写定义父类的方法
      3.2重写规则
        a.方法名和参数列表相同
        b.修饰符访问权限子类和父类相同或者比父类大
        c.返回值类型子类和父类相同(或者是父类的返回值类型的子类)
        d.异常跟父类相同或者范围更小

      一般:重写时,子类的东西都要与父类保持一致


      3.3方法重载与方法重写的区别
              位置    方法名    参数表   返回值         访问修饰符
        方法重写  子类   相同      相同     相同或者其子类   不能比父类更严格
        方法重载   同类    相同      不相同    无关         无关
      
      方法重写时子类和父类之间的同名方法,要求方法名相同、参数列表相同、返回值类型相同(或者其子类)、访问修饰符不能严于父类方法重载是同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型、访问修饰符无关

    4.final
      final修饰的类不能被继承
      final修饰的方法不能重写
      final修饰的属性不能被修改

    运行结果:

     1 package Day08;
     2 
     3 public class Dog extends Pet{
     4     private int strain;
     5     
     6     public Dog() {
     7 
     8     }
     9     public Dog(int strain) {
    10         super();
    11         this.strain=strain;
    12     }
    13     //打印宠物的所有信息
    14     public void print(){
    15         System.out.println("姓名:"+getName()+"品种:"+strain);
    16     }
    17     public int getStrain() {
    18         return strain;
    19     }
    20     public void setStrain(int strain) {
    21         this.strain = strain;
    22     }
    23     
    24     
    25 
    26 }
    Dog类
     1 package Day08;
     2 
     3 public abstract class Pet {
     4     private int age;                    //年龄
     5     private String name;                //昵称
     6     private int health;                    //健康值
     7     private int love;                    //亲密度
     8     public Pet() {
     9         
    10     }
    11     //规约
    12     public abstract void print();
    13     
    14 //    //打印信息
    15 //    public void print(){
    16 //        System.out.println("名字:"+this.name+",年龄:"+this.age+",健康值:"+this.health+",亲密度:"+this.love);
    17 //    }
    18     
    19     public int getAge() {
    20         return age;
    21     }
    22     public void setAge(int age) {
    23         this.age = age;
    24     }
    25     public String getName() {
    26         return name;
    27     }
    28     public void setName(String name) {
    29         this.name = name;
    30     }
    31     public int getHealth() {
    32         return health;
    33     }
    34     public void setHealth(int health) {
    35         this.health = health;
    36     }
    37     public int getLove() {
    38         return love;
    39     }
    40     public void setLove(int love) {
    41         this.love = love;
    42     }
    43     
    44 }
    Pet父类
     1 package Day08;
     2 
     3 public class Test {
     4     public static void main(String[] args) {
     5         //Pet pet=new Pet();
     6         Dog d=new Dog();
     7         d.setName("hh");
     8         d.setStrain(1);
     9         d.print();
    10     }
    11 }
    测试类
  • 相关阅读:
    把联系人从一张卡转移到另一张卡或者从一个手机转移到另一个手机
    Echarts画折线图
    Echarts画条形图
    Echarts画饼状图
    《计算机网络》读后感
    Vue.js项目无法启动:sh: 1: vue-cli-service: not found
    《Redis入门指南(第 2 版)》读后感
    翻译:《实用的Python编程》InstructorNotes
    翻译:《实用的Python编程》TheEnd
    翻译:《实用的Python编程》09_03_Distribution
  • 原文地址:https://www.cnblogs.com/yang82/p/7041254.html
Copyright © 2011-2022 走看看