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 }
    测试类
  • 相关阅读:
    SQL删除多表关联数据的三种方法
    如何防范SQL注入攻击
    非关系型数据库和关系型数据库有哪些区别?
    Asp.Net生命周期的详解
    ASP与ASP.NET区别
    COOKIE和SESSION有什么区别?
    关于SQL数据库中cross join 和inner join用法上的区别?
    Java-编程规范与代码风格
    TCP 连接建立与关闭(三次握手与四次挥手)
    OSI 七层模型
  • 原文地址:https://www.cnblogs.com/yang82/p/7041254.html
Copyright © 2011-2022 走看看