• java中的继承


    什么是继承

    继承就是子类继承父类的特征与行为。特征即成员属性,行为即成员方法

    为什么需要继承?

    提高代码复用性,减少代码冗余,提高开发效率。

    比如Dog类里有姓名和年龄,Cat类也有姓名和年龄,这时就可以将这些共有的属性,抽取到一个新的类中,这个类就叫做父类。

    示例代码一:不用继承的情况

    Cat类

    public class Cat {
        private String name;
        public void sleep(){
            System.out.println(name+"睡觉");
        }
        public void eat(){
            System.out.println(name+"吃饭");
        }
        public void miao(){
            System.out.println(name+"喵喵叫");
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    

    Dog类

    public class Dog {
        private String name;
        public void sleep(){
            System.out.println(name+"睡觉");
        }
        public void eat(){
            System.out.println(name+"吃饭");
        }
        public void wolf(){
            System.out.println(name+"汪汪叫");
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    

    测试类

    public class Test {
        public static void main(String[] args) {
            Dog dog = new Dog();
            dog.setName("狗");
            dog.sleep();
            dog.eat();
            dog.wolf();
            System.out.println("-------------------------------------------");
            Cat cat = new Cat();
            cat.setName("猫");
            cat.sleep();
            cat.eat();
            cat.miao();
        }
    }
    

    运行结果

    狗睡觉
    狗吃饭
    狗汪汪叫
    -------------------------------------------
    猫睡觉
    猫吃饭
    猫喵喵叫
    

    示例代码二:使用继承的情况

    Animal类

    public class Animal {
        private String name;
        public void sleep(){
            System.out.println(name+"睡觉");
        }
        public void eat(){
            System.out.println(name+"吃饭");
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    

    Cat类

    public class Cat extends Animal{
        public void miao(){
            System.out.println(this.getName()+"喵喵叫");
        }
    }
    

    Dog类

    public class Dog extends Animal {
        public  void  wolf(){
            System.out.println(this.getName()+"汪汪叫");
        }
    }
    
    

    测试类

    public class Test {
        public static void main(String[] args) {
            //子类继承父类,此时父类对象只能调用父类里面的属性和方法
            Animal animal1= new Animal();
            animal1.setName("狗");
            animal1.sleep();
            animal1.eat();
            Animal animal2 = new Animal();
            animal2.setName("猫");
            animal2.sleep();
            animal2.eat();
            System.out.println("----------------------------");
    
            //子类继承父类,子类对象既可以调用父类里的属性和方法,也可以调用自身的属性和方法
            Dog dog = new Dog();
            dog.setName("狗");
            dog.sleep();
            dog.eat();
            dog.wolf();
            Cat cat = new Cat();
            cat.setName("猫");
            cat.sleep();
            cat.eat();
            cat.miao();
            System.out.println("----------------------------");
    
            //子类继承父类,也可以用多态中的向下转型,访问子类的属性和方法
            Animal animal = new Dog();
            //animal.wolf(); 编译报错,说明向上转型的父类引用变量无法访问子类中的属性和方法
            Dog dog1 = (Dog) animal;
            dog1.setName("狗");
            dog1.sleep();
            dog1.eat();
            dog1.wolf();
            Animal animal3 = new Cat();
            Cat cat1 = (Cat) animal3;
            cat1.setName("猫");
            cat1.sleep();
            cat1.eat();
            cat1.miao();
        }
    }
    
    
    

    运行结果

    狗睡觉
    狗吃饭
    猫睡觉
    猫吃饭
    ----------------------------
    狗睡觉
    狗吃饭
    狗汪汪叫
    猫睡觉
    猫吃饭
    猫喵喵叫
    ----------------------------
    狗睡觉
    狗吃饭
    狗汪汪叫
    猫睡觉
    猫吃饭
    猫喵喵叫
    

    继承的特点

    1. extends 修饰
    2. 一个类只能继承一个父类
    3. 子类在继承父类的同时,也可以有自己的属性和方法
    4. 子类继承父类,父类的对象只能调用父类中的属性和方法,无法调用子类的方法
    5. 子类继承父类,子类的对象既可以调用父类中的对象和属性,也可以调用自身的对象和属性
    6. 子类继承父类,是多态的前提
  • 相关阅读:
    strcpy_s 和 strcat_s的用法 简单
    SAP更改商品的授权
    SAP设置默认的登录Client Code
    SAP安装windwos XP Sap的show 教程什么都看不到,的解决办法
    SAP用户管理
    sap 常用事务代码
    SAP-系统表
    随笔
    SAP如何学好SAP BASIS
    SAP IMG
  • 原文地址:https://www.cnblogs.com/anycall/p/10791477.html
Copyright © 2020-2023  润新知