博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习(4)类的四大特性2之继承
阅读量:4076 次
发布时间:2019-05-25

本文共 2181 字,大约阅读时间需要 7 分钟。

/*笔记:
 *一、继承的作用:
 *   解决代码复用,让我们的编程可以更加接近人类的思维。
 *   当多个类存在相同的属性和方法的时候,可以从这些类中抽象出父类,
 *   在父类中定义相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类。
 *   这样子类就会有父类的属性和方法。
 *二、继承注意点:
 *   1.子类和父类同时有构造函数时,优先调用父类的构造函数。
 *   2.Implicit super constructor Person() is undefined for default constructor.
 *     Must define an explicit constructor。
 *     使用继承时经常会报错如上,原因为子类在构造对象时会自动调用父类的构造函数,
 *     且不管是无参构造方法还是有参构造方法,都会默认调用父类的无参构造方法;
 *     当编译器尝试在子类中往这两个构造方法插入Person(int age,String name,float fee)方法时,
 *     因为父类没有一个默认的无参构造方法,所以编译器报错;
 *     要修复这个错误,方法如下:
 *     (1)、在父类手动定义一个无参构造方法:
 *     (2)、移除父类中自定义的构造方法;
 *   3.父类的共有(public),保护(protected),默认属性或方法会被继承。
 *   4.子类只能继承一个父类,想要继承更多需要通过接口实现。
 *   5.继承可以继承多次
 *   6.java所有类都是object的子类。
 *   7.JDK6中有202个包,3777个类,接口,异常,枚举,注释和错误。
 *   8.在做开发的时候,强烈建议大家多查jdk帮助文档。
 *   /

package com.shuiyixin;/* * @作者:shuiyixin * @日期:2018.01.29 * @内容:继承 * */public class learnJ_3jicheng {    static public void main(String []args){        XiaoMing xiao1 = new XiaoMing();        xiao1.speak();        System.out.println("hello world");    }}// 不用继承的类如下,小学生,中学生和大学生//小学生类class Pupil{    //成员属性    private int age;    private String name;    private float fee;        //成员方法    public float pay(float fee){        return fee;    }}class MiddleStu{    //成员属性    private int age;    private String name;    private float fee;        //成员方法    public float pay(float fee){        return fee*0.8f;    }}class CollageStu{    //成员属性    private int age;    private String name;    private float fee;        //成员方法    public float pay(float fee){        return fee*0.5f;    }}//******************华丽的分割线,下面是应用继承的类**************/class Persons{    private int age;    private String name;    private float fee;    protected float money;//  构造函数1,如果该类为父类,则构造函数应为无参构造函数//    public Persons(int age,String name,float fee){//        this.age = age;//        this.fee = fee;//        this.name = name;//    }//  构造函数2    public Persons(){        System.out.println("我是Person的构造函数");     }    public void fee(float fee){        this.fee = fee;    }};class XiaoMing extends Persons{    public void speak(){        System.out.println("我是xiaoming的构造函数");         System.out.println("我的资产是:"+ this.money);        System.out.println("我的工资是:"+ this.money);    }}

转载地址:http://euyni.baihongyu.com/

你可能感兴趣的文章
网络游戏客户端的日志输出
查看>>
关于按钮的mouseOver和rollOver
查看>>
《多线程服务器的适用场合》例释与答疑
查看>>
Netty框架
查看>>
Socket经验记录
查看>>
对RTMP视频流进行BitmapData.draw()出错的解决办法
查看>>
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
查看>>
FMS 客户端带宽计算、带宽限制
查看>>
在线视频聊天(客服)系统开发那点事儿
查看>>
语法解析器!
查看>>
SecurityError Error 2148 SWF 不能访问本地资源
查看>>
Flex4的可视化显示对象
查看>>
Flex:自定义滚动条样式/隐藏上下箭头
查看>>
烈焰SWF解密
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
查看>>
unity 3d音效如何设置?,近大远小
查看>>
unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
查看>>
unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
查看>>
Unity3D 2D模拟经营游戏 洗车沙龙 完整源码
查看>>