美文网首页
8.10 集训第十一天 【Java 继承与多态】

8.10 集训第十一天 【Java 继承与多态】

作者: 草莓灵啾啾 | 来源:发表于2019-08-12 15:23 被阅读0次

学习内容

在创建一个对象之前的准备工作
1.构造方法
2.静态变量
3.静态方法 必须主动调用才执行
代码块:在创建之前就优先被调用
格式:修饰符{
预先执行的内容
}
A.类里面可以有多个代码块
B.执行的顺序和出现的先后顺序相同
C.尽量不要在一个类里面写多个代码块
定义一个类 可以在多个地方定义
1.单独创建一个文件管理一个类
2.直接在文件里面 类A的上下创建
3.直接在某个类A里面创建一个类
一个类A依附于另一个类B
封装
类来封装属性和方法
访问权限private public protected

继承(A extends B)
获得父类的属性和方法 并且需要添加自己的属性和方法
Java里面只能单继承 变向多继承
所有的类都是直接或者间接继承于object类
当调用子类的一个方法时 如果没有就到父类去查找
如果在子类里面需要调用父类的方法或者显示使用父类的属性 使用super
什么情况下需要在一个父类里面调用super的对应方法?
格式:
public void walk(){
super.walk(); }
如果一个方法需要完成一个功能 又不能单独完成 必须要父类作相应的工作
1.父类做完以后,子类在再操作
2.子类做点事情以后再调用父类去操作

如果子类里面需要重新实现父类的方法 就需要重写@override

如果父类有自定义构造方法 子类的构造方法里必须显示调用父类的构造方法
如果父类有内部类 子类中有同名的内部类 父类的内部类就被屏蔽了
如果非要使用父类中的内部类 只能使用全名类 Personal.

多态polymorphic
1.同一个方法在不同的子类中有不同(多种)的实现
2.如果有继承关系:子类的对象可以使用父类变量接收(类型的自动向上转换)

实际操作

package day11;

import java.util.ArrayList;

public class Person {
    protected String name;
    protected int age;

    public Person(String name,int age){
        this.age=age;
        this.name=name;
    }
    public void walk(){
        System.out.println("走");

    }
    public  void eat(){
System.out.println("喝");
    }
}
class CivilServant extends Person{
    private int salary;
    private int count;



    public CivilServant(String name, int age, int salary,int count) {
        super(name, age);
        this.salary = salary;
        this.count=count;}

        @Override
        public  void walk(){
            System.out.println("慢慢走");
        }
        @Override
        public void eat(){
            System.out.println("大吃大喝");
        }


    public void cShow(){
        System.out.println("CivilServant{"+"name="+name+'\'' + ", age=" + age +
                ", salary=" + salary +
                ", count=" + count + '}');
}
}

class Worker extends Person{
    private  int salary;
    private String tec;
    public Worker(String name,int age,int salary,String tec){
super(name,age);
this.salary=salary;
this.tec=tec;
    }
    @Override
    public void walk(){
        System.out.println("快跑");
    }
    @Override
    public void eat(){
        System.out.println("快吃");
    }
    public void wShow() {
        System.out.println( "Worker{" +
            "name='" + name + '\'' + ", age=" + age +
            ", salary=" + salary +
            ", tec='" + tec + '\'' +
            '}'); }
}
class Test3{
    public  static  void main(String[] args){

        ArrayList<Person> peoples=new ArrayList<>();

        Person c1=new CivilServant("xw",30,5000,31);
        Person c2=new CivilServant("xs",32,7000,31);
        Person c3=new CivilServant("xa",35,3000,33);

        peoples.add(c1);
        peoples.add(c2);
        peoples.add(c3);

        Person w1 =new Worker("Jack",23,4556,"Android开发");
        Person w2 =new Worker("Rose",24,5665,"iOS开发");
        Person w3 =new Worker("May",29,6757,"web开发");

        peoples.add(w1);
        peoples.add(w2);
        peoples.add(w3);

        for (Person p: peoples){ //找到p到底是哪个类型的对象
            if(p instanceof CivilServant){ //公务员
                CivilServant c = (CivilServant)p;
                c.cShow();
                c.walk();
                c.eat();
            }
            else{ //员⼯
                Worker w = (Worker)p; w.wShow();
                w.walk();
                w.eat();
            }
        }
    }
}

相关文章

  • 8.10 集训第十一天 【Java 继承与多态】

    学习内容 在创建一个对象之前的准备工作1.构造方法2.静态变量3.静态方法 必须主动调用才执行代码块:在创建之前就...

  • 《Java8学习笔记》读书笔记(七)

    第6章 继承与多态 学习目标 了解继承的目的 了解继承与多态的关系 知道如何重写方法 认识java.lang.Ob...

  • 2020-07-08 腾讯客户端开发面试

    项目经历 java 三大特性?java 可以多继承吗?如何实现多继承?多态有哪些类型?封装,继承,多态;不可以;接...

  • Java继承与多态

    子类与父类、子类的继承性成员变量的隐藏与方法重写super与final关键字对象类型转换继承与多态抽象方法与抽象类...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • jvm结构&运行机制&多态实现

    浅析Java虚拟机结构与机制 浅谈多态机制的意义及实现 多态:编译时多态(重载)、运行时多态(继承父类、实现接口)...

  • JAVA(9)继承与多态

    继承与多态 、抽象类、接口 继承: 继承是类与类的一种关系 java中的继承是单继承 继承的好处: 子类拥有父类的...

  • 学习路线

    Java Se基础 Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱...

  • java 里的继承和多态

    所谓继承,顾名思义就是从父亲继承到儿子。多态呢,那就是一样东西有多个形态。java里面的继承与多态也基本是这个意思...

  • 【6.23】java的继承与多态

    java 继承 多态 继承与多态是面向对象的语言的两个重要的特点,深入的认识对运用好这门编程语言非常重要。 今天的...

网友评论

      本文标题:8.10 集训第十一天 【Java 继承与多态】

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