美文网首页
Java类继承,重写,重载

Java类继承,重写,重载

作者: 你的益达233 | 来源:发表于2020-08-13 09:27 被阅读0次

    继承

    继承是编程语言很重要的思路。编程讲究简单化,稳定,避免重复造轮子。
    继承可理解为一个对象从另外一个对象获取属性的过程
    比如小猫,小狗都需要喝水,那我们定义个动物类,里面定义一个喝水方法。让小猫,小狗类分别去继承动物类,这样不用定义都具有了喝水功能。

    extends继承类关键字

    首先要记住:

    • 在Java中,类的继承是单继承,就是说,一个子类只能拥有一个父类
    • 所有Java的类均是有Object类继承而来的,就是说,你没有继承任何类时,默认继承了Object类
    • 通过extends,子类可以继承父类除private属性外的所有属性,但不会继承构造函数

    示例代码:

    class Animal{
        private int a =100;
        public String name = "动物";
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    class Cat extends Animal{
    
    }
    
    public class ExtendsDemo {
    
        public static void main(String[] args) {
            Cat cat = new Cat();
            cat.setName("小猫");//父类继承过来的方法
            System.out.println(cat.getName());
        }
    }
    

    重写Override

    重写是子类对父类允许访问的方法的方法内容进行重新编写。
    注:返回值和形参都不能改变。即只能改大括号{}里面的内容
    好处:子类可以根据需要实现父类的方法
    示例代码:

    class Animal{
        private int a =100;
        public String name = "动物";
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void sound(){
            System.out.println("我会叫");
        }
    }
    
    class Cat extends Animal{
    
        //重写
        @Override
        public void sound() {
            //super.sound(); //注释掉
            System.out.println("喵喵喵");
        }
    }
    
    public class ExtendsDemo {
    
        public static void main(String[] args) {
            Cat cat = new Cat();
            cat.setName("小猫");
            System.out.println(cat.getName());
            cat.sound();
        }
    }
    

    重载Overload

    重载是指在同一个类里面,方法名相同,而参数不同,返回值可同可不同(也可以没有)。也可用在构造函数
    示例代码:

    class Cat extends Animal{
    
        //重写,修饰符保持和父类一样,不能改为更严格的修饰符
        @Override
        public void sound() {
            //super.sound(); //注释掉
            System.out.println("喵喵喵");
        }
    
        //重载:关键是方法名相同,参数不同,其他的修饰符,返回值可以改也可以不改
        private void sound(int num){
            System.out.println("叫"+num+"声");
        }
        //重载
        public String sound(String content){
            return "我是猫"+content;
        }
    }

    相关文章

      网友评论

          本文标题:Java类继承,重写,重载

          本文链接:https://www.haomeiwen.com/subject/mazpdktx.html