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

Java——继承

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

Java——继承

一、关于继承 继承的本质是对某一批类的抽象,从而实现对现实时间更好的建模。


extends 的意思是扩展,子类是父类的扩展。
Java中类只有单继承,没有多继承!
可以这么理解:一个儿子只可以有一个爸爸,但是一个爸爸可以有多个儿子。

继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等;
继承关系的两个类,一个为子类(派生类),一个为父类(基类);
子类继承父类,使用关键字extends表示;
子类和父类之间,从意义上讲应该具有"is a"的关系。 在Java中,所有的类,都默认直接或间接继承Object;
子类继承了父类,就会拥有父类的全部方法;

二、修饰符 四个修饰符的优先级顺序:public公共的
                                           protected受保护的
                                           default默认的(什么都不写的时候默认是它)
                                           private私有的 一般都写成公共的,如果是private私有的,那么无法直接   对象.方法去调用,需要先get、set先封装,才可以调用 三、快捷键 Ctrl+H可以调出继承树

参考代码如下:
public class Application {
    public static void main(String[] args) {
        Student s = new Student();
        s.say();
        System.out.println(s.money);
    }
}

———————————————————————————————————————————

//PerSon 人:父类,基类
// 在Java中,所有的类,都默认直接或间接继承Object
public class Person {

    //四个修饰符的优先级顺序
    //public公共的
    //protected受保护的(优先级高于default)
    //default默认的(什么都不写的时候默认是它)
    //private私有的
    public int money=10_0000_0000;

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }

    public void say(){
        System.out.println("说了话");

    }
}

———————————————————————————————————————————

//Student学生  is  a  Person人:派生类,子类
// 子类继承了父类,就会拥有父类的全部方法
public class Student extends Person{

}

———————————————————————————————————————————

//Teacher老师  is  a  Person人:人:派生类,子类
public class Teacher extends Person {

}

四、super和this super注意点: 1、super调用父类的构造方法,必须在构造方法的第一个 2、super必须只能出现在子类的方法或者构造方法中 3、super和this不能同时调用构造方法

super和this的区别:

代表对象不同:this本身调用者这个对象                         super代表父类对象的应用

前提:this没有继承也可以使用            super:只能有继承条件才可以使用 构造方法:this();本类的构造                   super();父类的构造

参考代码如下:

public class Application {
    public static void main(String[] args) {
        Student s = new Student();
//        s.test("李狗");
//        s.test1();
    }
}

———————————————————————————————————————————

public class Person {
    public Person(){
        System.out.println("Person无参执行了");
    }
    protected String name="张三";
    public void print(){
        System.out.println("人人爱我");
    }
}

———————————————————————————————————————————

public class Student extends Person{
    private String name="王二";
    public Student(){
        //隐藏代码:调用了父类的无参构造
        super();//调用父类的构造器,必须要在子类第一行
    }

    public void print(){
        System.out.println("我爱人人");
    }

    public void test1(){
       print();
       this.print();
       super.print();
    }
    public void test2(String name){
        System.out.println(name);
        System.out.println(this.name);//王二
        System.out.println(super.name);//张三
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/460127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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