Java基础语法(十三)类终章——我的妹子与我修成正果,还生了个娃
作者:互联网
前言(先扯几句家常)
个人主张自学,但是也不能忘记了讨论的重要性,但是由于平时不z怎么看CSDN,所以呢我这边搞了一个小圈子,欢迎大家来哦~可以畅所欲言呀——java小圈子
不过CSDN评论区我也会不定时观看的,所以非强制性要求哦
郑重声明!!!!
本人大一菜鸡,不要以为我多厉害,我是IT小白,此系列只是笔记,只是我巩固知识的
看一遍,想一遍,再写一遍让别人理解,我就会更加的深入理解
当然,如果有什么理解上的错误,请帮我指出,完善我的学习!谢谢~
再续上篇继承,封装,重写
继承
好的,我们造的妹子此时已经和我们结了婚,生了娃!(喝彩 O(∩_∩)O哈哈~ )
继承就是我们的孩子,有我们造的妹子的特性,比如说:孩子长得像他妈妈啦,性格像她妈妈啦之类的
虽然在Java中,被继承的类叫做父类,但是我们也是可以这么理解的~
后面我就叫做母类了,emmm原谅我,我只是觉得这样更好听一点
当然,Java中,类的继承只支持单继承
上篇的妹子类,我就不写了,占字数,想看可以去看看——妹子类
public class Ex4_22 { public static void main(String[] args) { Child ch = new Child(); ch.setAge(10); int age = ch.getAge(); System.out.println("孩子的年龄是:"+age); System.out.println("孩子会撒娇"); ch.coqutry(); }}class Child extends Girl{ /* 孩子继承了妈妈的特性 */}/* 运行结果: 孩子的年龄是:10 孩子会撒娇 哥哥不要这样啦,人家害怕啦~~~ */
重写与重载
- 重写
就是我们的孩子虽然已经继承了妈妈的东西,但是有些东西总不能是完全一样的
这个时候就要重写操作,可以将母类的东西改变,延伸
当然,我们的重写必须是跟母类的形参和返回值是相同的、、、
public class Ex4_22 { public static void main(String[] args) { Child ch = new Child(); ch.setAge(10); int age = ch.getAge(); System.out.println("孩子的年龄是:"+age); System.out.println("孩子会撒娇"); ch.coqutry(); }}class Child extends Girl{ public void coqutry(){ System.out.println("粑粑,我好爱你哦~~~"); }}/* 运行结果: 孩子的年龄是:10 孩子会撒娇 粑粑,我好爱你哦~~~ */
- 重载
重载是构造方法的重载,之前说过就不说了
封装
还记不记得我之前说过的规范
一般将属性设置为private,私有类型,无法被外界的访问
而对于这样的属性,我们一般需要对每个属性设置两个方法,
一个是getXxx(), 一个是setXxx(),用于对属性初始化和调用
这个过程就是封装
class Girl{ private int age; //这个是年龄属性 private String name; //这个是姓名属性 public void setName(String name){ /* 设置名字 参数:name 名字 */ this.name = name; } String getName(){ /* 获取名字 */ return name; } public void setAge(int age){ /* 设置年龄 */ this.age = age; } public int getAge(){ /* 获取年龄 */ return age; }}
接口
接口使用interface关键词来定义
interface Text{ //定义一个接口}
接口是抽象方法的结合,被类继承
接口支持多继承(可以继承爸爸妈妈爷爷奶奶很多人的特性)
接口没有构造方法,因此无法进行实例化对象操作,只有在被类继承后,才可以继承用到接口中的方法
接口被类继承需要用到implements关键词
public class Ex4_22 { public static void main(String[] args) { Text_1 te1 = new Text_1(); te1.eat(); }}interface Text_0 { int a = 0; public void eat();}class Text_1 implements Text_0 { public void eat(){ System.out.println("00"); }}//运行结果:00
抽象类
抽象类并没有那么多属性可以去描绘一个完整的个体
public abstract class Ex4_22{ //定义一个抽象类}
抽象类的方法也是抽象的,就是不具体的,就比如
我会说话,但是你只知道我会说话,而不知道我会说什么话,而这个会说话的方法就是抽象方法。
public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
和接口不同的是,抽象类虽然无法实例化对象,但是抽象类是个类,有构造方法
所以抽象类一般在设计程序的时候就要考虑是否定义
而抽象类被继承后,继承抽象类的类需要将抽象类的抽象方法重写,使其具体化
public class Ex4_22 { public static void main(String[] args) { Text te = new Text(); te.print(); }}abstract class Ex4_2 { //定义一个抽象类 public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰}class Text extends Ex4_2{ public void print(){ System.out.println("Hello"); }}//运行结果:Hello
枚举
Java 枚举是一个特殊的类,一般表示一组常量
比如妹子的性别等
使用enum定义
enum Gender{ MAN, WOMAN;} public class Test{ // 执行输出结果 public static void main(String[] args){ Gender c1 = Gender.MAN; System.out.println(c1); }}//运行结果:MAN
可以使用switch语句来使用
enum Gender{ MAN, WOMAN;}public class Ex4_22 { public static void main(String[] args) { Color myVar = Gender.MAN; switch(myVar) { case : System.out.println("男性"); break; case WOMAN: System.out.println("女性"); break; } }}//运行结果:男性
枚举可以在类内部定义
结语时间不早了,xdm为了保护头发,早点睡觉吧~
保护头发,人人有责!
xdm冲冲冲,我先溜了
标签:Java,void,抽象类,public,还生,println,终章,class,out 来源: https://blog.51cto.com/u_15175415/2790973