IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> java继承、构造方法、静态成员与访问修饰符demo -> 正文阅读

[人工智能]java继承、构造方法、静态成员与访问修饰符demo

创建父类Animal.java

package javaoop.ext;

//封装:约自私越好
public class Animal {
    //将子类共有的行为放到父类中
    private String color; //子类可以继承但是无法访问
    protected String voice; //同包或子类(不同包)访问
    String name;    //default

    //实例化子类的时候会调用父类的构造函数,构造函数不会被继承
    public Animal(String color, String voice, String name) {
        this.color = color;
        this.voice = voice;
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getVoice() {
        return voice;
    }

    public void setVoice(String voice) {
        this.voice = voice;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void desc() {
        System.out.println(name + "的颜色是" + color + "可以发出" + voice + "声");
    }
}

创建子类Cat.java

package javaoop.ext;

public class Cat extends Animal {
    //扩展属性
    private String run;
    private final int NUM = 10;//静态常量必须初始化
    //子类可以定义自己专有的构造方法吗?

    public Cat(String color, String voice, String name, String run) {
        //可以通过this调本类构造函数(必须在第一句哦)
        this("黄色", "沙哑的", "小黑");
        this.run = run;
    }

    public Cat(String color, String voice, String name) {
        super(color, voice, name);
    }

    //扩展的方法
    public void function() {
        //可通过this调用父类非私有成员
        //this.color无法访问,因为color属性是私有的
        System.out.println(this.name + "捕老鼠");
    }

    //test
    public void test() {
        super.desc();
    }
}

创建子类Dog.java

package javaoop.ext;

public class Dog extends Animal {
    //扩展的属性
    private String eat = "吃屎";
    private static String hair = "光滑";

    //如果实例成员已赋初值,则先初始化成员属性,再执行构造函数
    //因为实例化子类时会调用父类构造方法,父类要构造方法要3个参数,所以需要子类传入
    public Dog(String color, String voice, String name) {
        //在构造器里面this与super只能写在第一行
        super(color, voice, name);
    }

    //扩展的方法
    public void function() {
        System.out.println(super.getName() + "会看门");
    }

    public static void test() {
        System.out.println("哈哈");
    }

    //?静态方法可以通过this访问静态属性吗
    public static void method() {
        //静态方法不能访问该类的实例成员,只能访问该类静态成员
        // String eat = this.eat;X
        //this.function();X
        //静态方法中调用静态方法
        test();
        //静态方法访问静态成员
        System.out.println(hair);
    }

    //定义静态代码块
    //JVM加载类时执行静态代码块,无论new多少次都只执行一次static
    static {
        //静态代码块只能访问成员,不能访问实例成员
        //function();X
        method();
    }
}

测试类Test01.java

package javaoop.ext;

public class Test01 {
    public static void main(String[] args) {
        Cat cat1 = new Cat("粉色", "甜甜的", "小猫");
        Cat cat2 = new Cat("橘黄色", "尖锐的", "小苗", "跑呀");
        //使用多态
        Animal dog1 = new Dog("黄色", "旺旺呀", "小狗");
        //dog1已经变成了动物类,不能调用dog中特有方法了,称向上转型
        //我就要调用怎么办?向下转型
        Dog dog3 = (Dog) dog1;
        //现在又可以调用了,神奇吧
        dog3.function();

        Dog dog2 = new Dog("黑色", "旺旺啊", "小狗");
        System.out.println("调猫类测试方法");
        cat1.test();
        System.out.println("调猫类测试方法");
        cat2.test();
        System.out.println("调狗的父类方法");
        dog1.desc();
        System.out.println("调狗类自己方法");
        dog2.function();
    }
}

运行结果:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:37:57  更:2021-11-19 17:38:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:28:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码