zoukankan      html  css  js  c++  java
  • JAVA面向对象-----继承

    类和类之间的常见关系。

    既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系

    现实生活的整体与部分
    举例说明

    现实生活

    学生 是人
    狗 是动物
    球队 包含 球员 整体与部分的关系,部分可以删除和增加
    笔记本包含 cpu 整体与部分的关系,部分不可以删除和增加
    航母编队 包含(航母 护卫舰 驱逐舰 舰载机 核潜艇)

    java中的类关系

    1is a 关系 (学生是人)
    2has a 整体与部分

    class Person{
        String name;
        int age;
        Address add;
    
        Person(){
    
        }
        Person(String name,int age,Address add){
    
            this.name=name;
            this.age=age;
            this.add=add;
    
        }
    
        void speak(){
            System.out.println("姓名:"+name+" 年龄:"+age+" "+add.print());
        }
    }
    class Address{
        String country;
        String city;
        String street;
    
        Address(){
    
        }
        Address(String country,String city,String street){
            this.country=country;
            this.city=city;
            this.street=street;
        }
    
        String print(){
            return "地址:"+country+" "+"城市:"+city+"  街道;"+street;
        }
    }
    class Demo3{
    
        public static void main(String[] args){
    
            Address add=new Address("中国","广州","6路");
            Person p=new Person("jack",27,add);
            p.speak();
    
    
            System.out.println();
            }
    }

    继承

    1:描述一个学生类

    姓名年龄学号属性,学习的方法

    2:描述一个工人类

    姓名年龄工号属性,工作的方法

    3:描述一个人类
    1:姓名年龄属性,说话的方法。

    发现学生类和人类天生有着联系,学生和工人都是人。所以人有的属性和行为学生和工人都会有。出现类代码重复

    class Person {
        String name;
        int age;
    
        // 静态变量(类变量)对象和对象之间的代码重复使用静态变量
        static String country = "CN";
    
        Person() {
    
        }
    
        void speak() {
            System.out.println(name + ":哈哈,我是人!!!");
        }
    
    }
    
    // 让学生类和人类产生关系,发现学生is a 人,就可以使用继承
    class Student {
    
        String name;
        int age;
    
        Student() {
    
        }
    
        void study() {
            System.out.println("姓名:" + name + "年纪:" + age + ":好好学习");
        }
    }
    
    class Worker {
        String name;
        int age;
    
        void work() {
            System.out.println(name + ":好好工作,好好挣钱。");
        }
    
    }
    
    class Demo1 {
    
        public static void main(String[] args) {
            Student s = new Student();
            s.name = "jack";
            s.age = 20;
            s.study();
    
            Worker w = new Worker();
            w.name = "rose";
    
            w.work();
        }
    }
    问题:
        1:如果没有继承,出现类和类的关系无法描述
        2:如果没有继承,类和类之间有关系会出现类和类的描述代码的重复。
    

    继承特点

    描述类和类之间的关系
    降低类和类之间的重复代码
    降低对象和对象之间的代码重复使用静态变量
    降低类和类之间的代码重复使用就继承


    【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧(要先登录CSDN账号哦 )】


    —–乐于分享,共同进步!
    —–更多文章请看:http://blog.csdn.net/duruiqi_fx


  • 相关阅读:
    CoreText实现图文混排之点击事件
    iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)
    iOS---多线程实现方案一 (pthread、NSThread)
    iOS中navigationItem的titleView如何居中
    从 setNeedsLayout 说起
    精准化测试专业平台Paw:苹果APP应用代码质量的守护者
    Runtime实战之定制TabBarItem大小
    YYModel 源码历险记 代码结构
    10分钟搞定支付宝和微信支付 的 各种填坑
    如何写好一个UITableView
  • 原文地址:https://www.cnblogs.com/hainange/p/6153863.html
Copyright © 2011-2022 走看看