代码笔记Java基础:Java的方法和类
Posted 睡醒了没吃饱Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码笔记Java基础:Java的方法和类相关的知识,希望对你有一定的参考价值。
- Java作为一种面向对象的语言,具备三大特性(面向对象的核心):封装性 继承性 多态性
- 封装性:就是打包,所有东西都是打包好的。
- 继承:子类可以继承父类
- 文件名:Student.java
-
1 public class Student { 2 public String name; 3 public int age; 4 5 public void study(){ 6 System.out.println("学生学习"); 7 } 8 }
- 在上文中定义了普通方法学生(Student),并定义一个普通行为——普通类学习(study)
- Student作为构造函数,构造函数是不能被继承,所以也不存在构造函数重写
- 文件名:Unstudent.java
-
1 public class UnStudent extends Student{ 2 public void study(){ 3 System.out.println("大学生的学习方法"); 4 } 5 public void playGame(){ 6 System.out.println("大学生玩dota"); 7 } 8 }
- 在上文中定义了普通方法大学生(Unstudent),并继承(extends)普通方法学生(Study)
- 同时,它在子类(Unstudent),继承父类(Study)的前提,子类定义一个和父类相同的(方法名、参数、返回类型)方法(“public void study(){
”)。 - 子类可以定义新的行为(类)“playGame”。
- 文件名:Test.java
-
1 public class Test { 2 public static void main(String[] args) { 3 //自动转型 4 UnStudent us = new UnStudent(); 5 Student us1 = new UnStudent(); 6 Student us2 = new Student(); 7 8 us.study(); 9 us1.study(); 10 us2.study(); 11 12 us.playGame(); 13 us1.playGame(); 14 us2.playGame(); 15 } 16 }
- 在上文中主函数里大学生(Unstudent)“ us ”构造一次,进行方法重载。“ us ”将具备普通方法UnStudent所有特性,并且进行方法重写的将覆盖父类原有的类的定义。
- “ us1 ”具备Student所有属性,但被UnStudent重写的属性将会是UnStudent重写后的内容,原Student内类将会被覆盖,UnStudent内存在但Student不存在的类“ us1 ”将无法调用。
- “ us2 ” 就是正宗Student类。
- 上面存在两种方法:
- 自动转型
定义:创建子类的对象,然后自动转型为父类的类型
格式:父类类名 对象名 = new 子类类名(); - 转型后的对象类型为转型后的类型,执行的方法如果子类重写了父类的方法,则执行的是重写后的,如果没有重写,则执行的是父类自己的
如果没有自动转型过程,则执行的方法都是自己的方法
- 自动转型
- 上面存在两种方法:
- 因为存在自动转型和方法重写和继承等特性,所以Java语言呈现多态性。
- 多个同一种类型的对象,执行同一个方法,执行的过程不一样(有区别)
- 为什么会有多态现象???
- 自动转型+方法重写
- 自动转型+方法重写 将导致具有继承性,因此将具备多态性
- Java语言的方法分类只有三种:
- 构造方法:public 类名( ){ }
- 普通方法:public 返回类型 方法名(参数){ }
- 抽象方法:public abstract 返回类型 方法名(参数);
- Java语言类的分类也有三种:
- 普通类:public class 类名{}
- 只能有普通方法和构造方法,一定不能有抽象方法
- 可以创建对象
- 属性可以是常量(static final),也可以是变量
- 抽象类:public abstract class 类名{}
- 三种类型的方法都可以存在
- 不能创建对象
- 属性可以是常量(static final),也可以是变量
- 接口:public interface 类名(){}
- 只能有抽象方法,普通方法和构造方法不存在
- 不能创建对象
- 属性一定是常量(static final)
- 普通类:public class 类名{}
- 接口和抽象类有什么用?
- 接口和抽象类的作用是用来当父类被继承的,抽象方法是用来指导子类重写(实现)的
- 关键子:implements
- 格式:
- public class 子类类名 implements 接口名{
//重写父类的所有的抽象方法
}
- public class 子类类名 implements 接口名{
- 接口无非就是领导,只是指导开发
- 文件名:Teacher.java
1 public interface Teacher { 2 public static final String name = "aa"; 3 public static final String job = "aa"; 4 public static final int age = 20; 5 6 //抽象方法 7 public abstract void play1(); 8 public abstract void play2(); 9 public abstract void play3(); 10 public abstract void play4(); 11 public abstract void play5(); 12 }
- 文件名:UnTeacehr.java
1 public abstract class UnTeacher implements Teacher{ 2 3 }
- 在上文两个文件中“ Teacher ”类作为接口类(关键词 interface 表示接口类
- 具备三个常量,不可更改。
- 有抽象方法,无法实现和定义。
以上是关于代码笔记Java基础:Java的方法和类的主要内容,如果未能解决你的问题,请参考以下文章