2019.3.13 Java的特性——继承

继承

  • 面向对象编程(OOP)三大特征:继承,封装,多态

  • 目的:为了减少重复代码,避免复制粘贴

  • 创建父类Animal


    public class Animal {

        private String name;    //定义name属性
        private String kind;    //定义kind属性

        private int age;       //定义age属性
 
       public void bite(){        //创建bite方法

        System.out.println("咬咬咬");
    }
        
        public void bark(){        //创建bark方法
        
        System.out.println("叫叫叫")
    }

        @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                ", kind='" + kind + '\'' +
                ", age=" + age +
                '}';
    public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getKind() {
            return kind;
        }

        public void setKind(String kind) {
            this.kind = kind;
       }

        public int getAge() {
            return age;
       }

        public void setAge(int age) {
            this.age = age;
        }
}

  • 创建子类Cat继承于父类Animal

    public class Cat extends Animal{

    }
  • MainClass中使用子类Cat

    public class SecClass {
    
        public static void main(String[] args) {
        
        Cat cat = new Cat();

        cat.setName("旺财");
        cat.setAge(2);
        cat.setKind("土狗");

        System.out.println(cat);
        cat.bark();
        cat.bite();
        }
    }

  • 输出显示测试数据

  • 注释

    • 子类和父类是相对概念

    • 只有单继承,只能继承一个类

    • 子类可以继承父类所有的"public"修饰的属性和方法,"private"修饰的无法继承

    • main中通过访问public方法来访问private属性

    • 子类可以有独特的方法和属性,功能可以比父类更细致

    • 父类比子类范围更大

    • Java中所有的类都最终继承于Object类

  • 当子类Cat中想要新加方法时


    public class Cat extends Animal{
    
        public void wash(){
        
            System.out.println("洗脸");
        }
    }

  • 当子类Cat想要修改(重写)父类方法时

    • 子类可以重写(Alt+Insert选第三个,快捷键ctrl+o)
    • 测试样例,bark()方法想要输出"喵喵喵"

    public class Cat extends Animal{
    
      @Override
       public void bark() {

            System.out.println("喵喵喵");

        }  
    }

  • 当子类Cat既想重写父类方法,又想在父类方法的基础上新加东西

     public class Cat extends Animal{
    
         public void bite() {
       
        super.bite();//→就是执行前面的bite"咬咬咬"

        System.out.println("猫咬人");//新添加的东西
        }
      }

  • 注释
    • super的作用在子类中调用从父类继承的方法
  • 测试样例
posted @ 2019-03-13 15:53  仲夏今天也在写前端  阅读(208)  评论(0编辑  收藏  举报