zoukankan      html  css  js  c++  java
  • 面向对象特征之继承,方法的重写

    1.面向对象的特征:继承性

    2.通过 Class A extends B 实现类的继承

    子类:A     父类(基类 SuperClass):B 

    3.子类继承父类后,父类声明的属性   方法,子类就可以获取到。

               注意:当父类中有私有的属性或者方法时,子类是可以获取的到,只是由于封装性的设计

                          使得子类不能直接调用。

      子类除了继承父类的结构之外,还可以定义自己的特有成分

    extends:子类是对父类功能的扩展

    4. Java中只能单继承:一个类只能继承一个父类,反之,一个父类可以有多个子类

    5.父子类是相对的概念

    Student:

    package com.aff.java;
    
    public class Student extends Person {
        /*
         * private String name; private int age;
         */
        private String schoolName;
    
        public Student() {
        }
    
        public Student(String name, int age) {
            // this.name = name;
            // this.age = age;
            this.setName(name);
            this.setAge(age);
        }
    
        /*
         * public String getName() { return name; }
         * 
         * public void setName(String name) { this.name = name; }
         * 
         * public int getAge() { return age; }
         * 
         * public void setAge(int age) { this.age = age; }
         * 
         * public void eat() { System.out.println("吃饭"); }
         * 
         * public void walk() { System.out.println("走路"); }
         */
    
        public void info() {
            System.out.println("学生");
        }
    }

    Worker:

    package com.aff.java;
    
    public class Worker extends Person {
        /*
         * private String name; private int age;
         * 
         * public String getName() { return name; }
         * 
         * public void setName(String name) { this.name = name; }
         * 
         * public int getAge() { return age; }
         * 
         * public void setAge(int age) { this.age = age; }
         * 
         * public void eat() { System.out.println("吃饭"); }
         * 
         * public void walk() { System.out.println("走路"); }
         */
    
    }

    Person:

    package com.aff.java;
    
    public class Person {
    
        private String name;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void eat() {
            System.out.println("吃饭");
        }
    
        public void walk() {
            System.out.println("走路");
        }
    }

    Graduate:

    package com.aff.java;
    
    public class Graduate extends Student {
        public void show() {
            System.out.println("我想芳芳了");
        }
    }

    TestExtends:

    package com.aff.java;
    
    public class TestExtends {
        public static void main(String[] args) {
            Student s = new Student();
            s.eat();
    
            Worker w = new Worker();
            w.eat();
    
            Person p = new Person();
            p.eat();
    
            Graduate g = new Graduate();
            g.eat();
            g.info();
            g.show();
        }
    }

    输出结果:

    吃饭
    吃饭
    吃饭
    吃饭
    学生
    我想芳芳了

     

    二:方法的重写

     1.前提:有子类继承父类

     2.子类继承父类以后,若父类的方法对子类不适用, 那么子类可以对父类的方法重写(override  overwrite)

        重写规则: 1.要求子类方法的    返回值类型    方法名(参数列表)与父亲的方法一样

                           2.子类方法的修饰符不能小于父类方法的修饰符

                           3.若父类方法抛异常,那么子类抛的异常类型不能大于父类的

                           4.子父类的方法必须同为static或同为非static的

    All that work will definitely pay off
  • 相关阅读:
    MVC MVP MVVM
    RC4 对称加密
    ARM 寻址方式
    杂项记录 arm64 的一些特性
    无向图-笔记-代码
    iOS 自定义导航栏
    ios中设置UIButton圆角,添加边框
    iOS 中UICollectionView实现各种视觉效果
    UIScrollView中UITableView
    iOS 13 适配总结
  • 原文地址:https://www.cnblogs.com/afangfang/p/12515532.html
Copyright © 2011-2022 走看看