Java入门
对于java,我也是刚刚接触啦,希望能在写博客的过程中巩固知识,提升自己,见证自己的进步和成长,如何有帮助到大家的地方,那自然棒棒哒!
今天我们记叙的主要内容是1、构造函数,2、方法重载,3、继承,4、方法重写与多态,5、方法分类,6、接口抽象类与继承。
1、构造函数
定义:用于构造函数的一种行为。
格式:public 类名(){}
功能:构造函数的功能主要用于在类的对象创建时定义初始化的状态。
注意:1、创建当前类的对象时,自动执行;
2、除了接口类之外的类都有构造方法;
3、构造方法有返回值,返回的是对象在内存中的地址;
构造类Teacher
public class Teacher {
public String name;
public int age;
public String sex;
public int height;
// 默认的构造函数存在
public Teacher() {
System.out.println("执行了Teacher的构造函数1");
}
public Teacher(String n){
name = n;
}
public Teacher(String n,int a,String s,int h){
name = n;
age = a;
sex = s;
height = h;
}
测试函数Test
public class Test {
public static void main(String[] args) {
Teacher tea = new Teacher("张三",24,"女",180);
}
2、方法重载
2.1 定义:同一个类中,多个方法的方法名相同,参数列表不同(类型、顺序、个数)的方法互为重载方法
2.2 分类:普通方法重载和构造方法重载
2.3 构造方法重载作用:可以初始化当前对象的一些属性
2.4 注意:一旦你重载了构造方法后,则默认的那个没有参数的构造方法就消失了 如果还需要用无参的构造方法,则需要显性定义出来
2.5互为重载的普通方法
public void play() {
System.out.println("play");
}
public void play(int a){
System.out.println("play1");
}
public void play(int a,int b){
System.out.println("play1");
}
public void play(String a){
}
public void play(String a,int b){
}
public void play(int b,String a){
}
3、继承
3.1定义:子类继承父类的属性和方法(构造方法不能继承)
3.2格式:public class子类类名 extends 父类类名{}
3.3注意:任何一个类都是Object类的子类
继承只能是单继承,不能是多继承,但是可以多层继承
4、方法重写和多态
4.1方法重写格式:子类重写父类的方法,方法名、参数列表、返回类型必须都要一样的
4.2自动转型格式:子类对象自动转型为父类的类型
父类类型 对象名= new 子类类型();
4.3注意:自动转型后的对象,如果子类重写了父类的方法,则执行的是重写后的
4.4多态:①面向对象编程有三个特征,即封装、继承和多态。
②方法的重写、重载与动态连接构成多态性。(对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中这个类型的方法,这就是动态连接)
③多个同一个类型的对象,执行同一个方法,过程不一样就是多态性。
④继承->方法重写和自动转型—>多态性
⑤
父类
class Father{
public void func1(){
func2();
}
}
public void func2(){
System.out.println("Father的func2");
}
子类
class Child extends Father{
public void func1(int i){
System.out.println("Child的func1");
}
}
public void func2(){
System.out.println("Child的func2");
}
测试函数
public class PolymorphismTest {
public static void main(String[] args) {
Father child = new Child();
child.func1();
}
}
解析:子类Child继承了父类Father,并重载了父类的func1()方法,重写了父类的func2()方法,重载后的func1(int i)方法和func1()方法不再是同一方法,由于父类没有func(int i)方法,那么父类类型的引用Child就不能调用func1(int i),而子类重写了func2()方法,那么父类类型的引用child在调用该方法时将会调用子类的func2方法。
实现结果:
5、方法分类
构造方法:public类名(){}
普通方法:public返回类型方法名(){}
抽象方法:public abstract返回类型方法名();
5.1普通类:public class类名{}
①方法只能有普通方法和构造方法,一定不能有抽象方法 ②可以构造对象
5.2抽象类:public abstractclass 类名{}
① 三种方法都可以存在 ②不能创建对象
5.3接口:public interface 类名{}
①只能有抽象方法(可以省略掉中间的abstract修饰词) ②不能创建对象
6、接口抽象类和继承
抽象类和接口作用:用于当父类,被继承,约束普通类的成员定义
继承接口:public class子类类名implements接口名{}
注意:接口可以多继承