JAVA面向对象:继承、构造方法、重写和重载
构造方法
无参构造
public class A {
}
在类A中创建一个构造方法A(),并且打印出一句话
构造方法必须和类名一样
public class A {
public A(){
System.out.println("构造方法A()");
}}
新建一个测试类,并在类中nuw一个A类的对象
public class Test {
public static void main(String[] args) {
A a = new A();
}}
执行main方法试试看
构造方法相当于在new对象是自动使用的方法
有参构造
有参构造就是有参数的构造方法
在类A中声明一个有参数的构造方法,传入两个String类型的参数,a和b
public class A {
public A() {
}
public A(String a, String b) {
System.out.println(a b);
}}
在测试类中new一个对象a时传入参数
public class Test {
public static void main(String[] args) {
A a = new A("aaa", "bbb");
}}
执行main方法
注意
没有构造方法的时候,类中隐藏了一个无参构造。但是创建一个有参构造,隐藏的无参构造就会消失。那么以后new对象就只能带参数了。所以在建有参构造时一定要创建一个无参构造方法放那。
类的继承
java语言中,类class 是单继承,多实现接口。接口interface 是多继承的。
为什么要继承呢?因为子类想要在父类的基础上添加新功能。
子类继承父类可以继承父类中的方法和属性
下面举例分析:
父类是人,子类是老司机。
人的特征有:两只手,两只眼,两只脚,会吃会喝
老司机继承了人类的特征,并且多出了自己会开车这个功能。
代码如下:
这是一个人 类,具有以下属性和功能。
public class Ren {
public final String shou = "两只手";
public final String jiao = "两只脚";
public final String yan = "两只眼";
public void chi() {
System.out.println("会吃");
}
public void he() {
System.out.println("会喝");
}}
这是老司机类,继承了人类。并且多了个会开车的功能
public class Siji extends Ren {
public void kai() {
System.out.println("会开车");
}}
测试:创建老司机对象输出属性并调用方法。
public class Test {
public static void main(String[] args) {
Siji b = new Siji();
System.out.println(b.jiao);
System.out.println(b.shou);
System.out.println(b.yan);
b.chi();
b.he();
b.kai();
}}
方法重写、重载
重写 覆盖:方法名,返回类型,形参都一样。有此种情况的,必须为继承关系。
重载:方法名一样,返回类型,形参个数,类型不样的方法,不一定必须是继承关系,同一个类中都可以,比如 构造方法重载
重写
因为子类不满意父类的方法所以想把它改一下,这就是子类重写父类的方法。
比如人会吃会喝,但是老司机不喜欢它会吃这个功能,想把它改一下,改成会吃屎。
代码如下:
老司机重写人类的chi()方法
方法名一定要一样
public class Siji extends Ren {
public void kai() {
System.out.println("会开车");
}
public void chi() {
System.out.println("会吃屎");
}}
现在重写运行测试类
重载
有参构造和无参构造就是方法重载,一个类中有两个名字一样的方法,但是他们的返回值类型和参数类型,参数个数不一样。
两个方法的返回值类型和参数类型,参数个数,只要有一个不一样。但是他们方法名一样,那么两个方法就重载。
本文出至:学新通
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通
- 本文地址: https://www.swvq.com/boutique/detail/15608
- 联系方式: luke.wu@swvq.com
- 来源链接: www.php.cn/java-article-490791.html
-
docker hub 进不去怎么办
PHP中文网 03-15 -
2023年最新的28道PHP面试题附答案
PHP中文网 03-27 -
windows上查看nginx是否启动
PHP中文网 04-19 -
推荐五款xml编辑工具
PHP中文网 03-04 -
navicat怎样清除注册表
PHP中文网 04-05 -
ChatGPT应用通过Axios+EventSource使用GPT3.5 API
uWydnA 03-13 -
强力推荐10款好看使用的Bootstrap后台管理系统模板
PHP中文网 03-09 -
vscode怎么调整代码大小两种方法
PHP中文网 03-11 -
navicat连接sqlserver数据库
PHP中文网 04-03 -
navicat导入csv文件
PHP中文网 03-30