栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DAY 13

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DAY 13

day13

java中关于继承性的规定:

1.一个类可以被多个子类继承

2.java中类的单继承:一个类只能有一个父类

3.子父类是相对的概念

4.子类直接继承的父类,成为直接父类。间接继承的父类成为间接父类

5.子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法

若未显示的声明一个类的父类,则此类继承于java.lang.Object

所有的java类(除java.lang.Object外)都直接或间接的继承于java.lang.Object类

package shangGuiGu.day13;

public class demo01 {

     private int sex;
     private int salary;
     public void manOrwoman(){
         if(sex==1){
             System.out.println("man");
         }
         else if(sex==0){
             System.out.println("woman");
         }
     }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public void employeed(){
         if(salary==0){
             System.out.println("no job");
         }else{
             System.out.println("job");
         }
     }
 public  demo01(){

 }
    public demo01(int sex, int salary) {
        this.sex = sex;
        this.salary = salary;
    }
}
package shangGuiGu.day13;

public class demo02 extends demo01 {
    private int yearsOld;
    public demo02(){

    }
    public demo02(int yearsOld){
        this.yearsOld=yearsOld;
    }
    public void printAge(){
        System.out.println("i am"+yearsOld+"years old");
    }

    public int getYearsOld() {
        return yearsOld;
    }

    public void setYearsOld(int yearsOld) {
        this.yearsOld = yearsOld;
    }
}
package shangGuiGu.day13;

public class demo03 {
    public static void main(String[] args) {
        demo02 kid=new demo02(12);
        kid.printAge();
        kid.setSalary(0);
        kid.setSex(1);
        kid.employeed();
        kid.manOrwoman();
    }
}
方法的重写override/overwrite

在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时。子类的方法将覆盖父类的方法

package shangGuiGu.day13;

public class person {
    String name;
    int age;
    public person(){

    }

    public person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void eat(){
        System.out.println("eat");
    }
    public void walk(int distance){
        System.out.println("walk"+distance);
    }
}
package shangGuiGu.day13;

public class student extends person {
    String major;

    public student() {
    }

    public student(String major) {
        this.major = major;
    }
    public void study(){
        System.out.println("study"+major);
    }
    public void eat(){
        System.out.println("student eat");
    }
}
package shangGuiGu.day13;


public class demo05 {
    public static void main(String[] args) {
        student s=new student("technology");
        s.eat();
        s.walk(10);
        s.study();
    }
}
super 关键词

可以用来调用:属性、方法、构造器

1.在子类的方法或构造器中,通过使用 super.属性或super.方法的方式,显式的调用父类中声明的属性或方法。

2.当子类或父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用 super.属性的方式,表明调用的是父类中声明的属性

特殊情况:当子类重写了父类中的方法以后,我们想在子类的方法中调用父类被重写的方法时,则必须显式的使用super.方法的方式,表明调用的是父类中被重写的方法

3.super调用构造器时,super(形参列表)的使用必须声明在子类构造器的首行。故在类的构造器中,针对于this(形参列表)或super(形参列表)只能二选一,不能同时出现

4.在构造器的首行,没有显式的声明this(形参列表)或super(形参列表),则默认调用的是父类中空参的构造器

多态性

一个事物的多种形态

父类的引用指向子类的对象

person p=new man();

多态的使用:当调用子父类同名同参数的方法时,实际执行的是子类重写父类的方法

编译看左边,执行看右边,new谁看谁

多态性的使用前提:1.类的继承2.方法的重写

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号