链接和作用域

makefile编写总结

  返回  

Java面对对象3

2021/8/21 8:11:27 浏览:

面向对象

多态

  • 即同一方法可以根据发送的对象不同采取多种不同的行为方式。
  • 一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多(父子类,有关系的类)
  • 多态的存在
    • 有继承关系
    • 有方法的重写
    • 父类的引用指向的子类对象
    • 子类重写父类的方法执行子类
  • 注意:多态是方法的多态,属性没有多态
  • instanceof类型转换 引用类型

一个对象的实际类型是可以确定的;

可以指向的引用类型就不确定了:父类的引用类型指向子类

子类重写了父类的方法,执行子类的方法

实例:

父类:

package demo03;

public class Person {
    public void run(){
        System.out.println("eat");
    }
}

子类:

package demo03;

public class Student extends Person{
public void run(){
    System.out.println("tea");
}
}

测试类:

package demo03;

import java.util.Scanner;

public class Appcation {
    public static void main(String[] args) {
       //Student student = new Student();
        Person person=new Student();
        person.run();
    //   student.run();

    }
}

注意事项

  1. 多态是方法的多态
  2. 父类和子类,有联系,类型转换异常classcastexception
  3. 存在条件:继承,重写方法,父类类型指向子类
  4. 不存在状态:static 方法属于类,不属于实例,final 常量 ,private 方法;

instanceof和类型转换

instanceof

判断一个对象是什么类型

输出布尔类型

System.out.println(student instanceof Person);

类型转换

基本类型转换:

低转高:自动转换

高转低:强制转换64 double long 32 int float 16 short char 8 byte 1 boolean

引用类型转换:

父类转子类:自动转换

子类转换父类:强制转换

Person类:

package demo03;

public class Person {
    public void run(){
        System.out.println("eat");
    }
}

Student:

package demo03;

public class Student extends Person{
public void run(){
    System.out.println("tea");
}
public void a(){
    System.out.println("a");
}
}

Application:

package demo03;

import java.util.Scanner;

public class Application {
    public static void main(String[] args) {
    Person person=new Person();
    Student student=new Student();

    Person person1= student;
    person1.run();

    Student  s2= (Student) person;
    s2.a();


    }
}

static关键字总结

静态变量

非静态变量

静态方法

非静态方法

package demo04;

public class Person {
    private static int age;
    private double d;
    public static void  eat(){

    }
    public void drink(){

    }

    public static void main(String[] args) {
        System.out.println(Person.age);
        Person person = new Person();
        System.out.println(person.d);
        Person.eat();
        person.drink();
    }
}

静态代码块>匿名代码块>构造方法

静态代码块只执行一次

匿名代码块赋初始值用的

静态导入包:import static java.lang.Math.random;

抽象类

abstract 抽象类

abstract 抽象方法

注意事项

  1. 不能new这个抽象类,只能通过子类去实现它:约束的条件;
  2. 抽象类中可以写普通的方法
  3. 抽象方法必须在抽象类中
  4. 抽象类中有构造器

构造器作用:是定义在Java类中的一个用来初始化对象的方法,用new+构造方法去创建一个新的对象,并给对象实例进行赋值。

接口interface

作用:

  1. 约束
  2. 定义一些方法,让不同的人实现
  3. 所有的方法public abstract
  4. 常量public static final
  5. 接口不能被实例化,接口没有构造方法
  6. implements可以实现多个接口
  7. 必须要重写接口中的方法

定义接口:

package demo06;

public interface UseService {
   public  static final int AGE=100;

   public abstract void eat();
  void drink();

}

实现接口:

package demo06;

public class Application implements UseService{
    @Override
    public void eat() {

    }

    @Override
    public void drink() {

    }
}


联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号