首页 > 其他分享 >面向对象

面向对象

时间:2023-03-15 10:22:14浏览次数:19  
标签:String 重写 void 面向对象 方法 public name

面向对象

1.构造器

  1. 和类名相同

  2. 没有返回值

  3. new本质在调用构造方法

  4. 初始化对象的值

  5. 定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造

  6. 快捷键:Alt+Insert

    package com.zhang.oop.demo01;
    public class Student {    //构造器
        String name;
        int age;
        public Student() {
        }
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    
    package com.zhang.oop.demo01;
    public class Application {
        public static void main(String[] args) {
            Student studengt = new Student("zhang",34);
            System.out.println(studengt.name);
            System.out.println(studengt.age);
        }
    }
    

    2.方法重写

    非静态:重写 快捷键:Alt+Insert override

    静态方法:方法的调用只和左边有关系,定义的数据类型有关。

    重写:需要有继承关系,子类重写父类的方法!

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 修饰符:范围可以扩大但不能缩小。 public>protected>default>private
    4. 抛出的异常:范围可以缩小,但不能扩大:ClassNotFoundException --> Exception(大)

    为什么要重写

    1. 父类的功能,子类不一定需要,或者不一定满足。

3.多态

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类类型转换异常:ClassCastException

  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象:Father f1 = new Son();

  4. 不能重写的有:static:方法,属于类,不属于实例。 final 常量。 private方法

​ a继承了b,a重写了b的run()方法,所以a.run()和b.run()运行出来是mad。因为a继承了b中所有的方法,所以都可以调用b中的方法cd()。因为cs()方法是a独有的,所以只有a可以调用,b不能调用。如果想输出b中的run方法可以创建属于b的实例:B b = new B(); b.run();如果想调用a中的cs()方法就得强制转换((A).b).cs();高向低转换。

4.static关键字

public class Person {
    {   //第二个运行
        System.out.println("匿名代码块");
    }
    static {   //第一个运行  只运行一次
        System.out.println("静态代码块");
    }
    public Person(){   //第三个运行
        System.out.println("构造方法");
    }
    public static void main(String[] args) {
        Person person = new Person();
    }
}

5.抽象

public abstract class Action{
    //abstract 抽象类,属于是单继承  只能让继承它的子类去实现
    public abstract void doSomthing(){
        //抽象方法,只有方法名字,没有方法的实现
        //1.不能new这个抽象类,只能靠子类去实现它
        //2.抽象类中可以写普通的方法,抽象方法必须在抽象类中
    }
}

6.接口

package com.zhang.oop.demo02;
public interface UserService {
    void add(String name);   //接口中的所有定义方法其实都是抽象的public abstract(默认的)
    void delete(String name);
    void update(String name);
    void query(String name);
}
package com.zhang.oop.demo02;
public interface TimeService {
    void timer();
}
package com.zhang.oop.demo02;
public class UserServiceImpl implements UserService,TimeService {
    @Override
    public void timer() {  //实现了接口的类 就要实现接口中的方法
    }
    @Override
    public void add(String name) {
    }
    @Override
    public void delete(String name) {
    }
    @Override
    public void update(String name) {
    }
    @Override
    public void query(String name) {
    }
}
  1. 接口不能被实例化,接口中没有构造方法
  2. implements可以实现多个接口
  3. 必须要重写接口中的方法

标签:String,重写,void,面向对象,方法,public,name
From: https://www.cnblogs.com/rockz/p/17217549.html

相关文章

  • 面向对象高级
    static关键字static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量被static修饰的成员变量,一般叫做静态变量被static修......
  • 面向对象进阶
    面向对象进阶一、递归1.概念:方法自己调用自己,但是会在某一个时机进行第次返回。注意:递归的行为,通常要放在递归的条件之后publicclassTest{ publicvoidfun(int......
  • JavaSE-day02(面向对象:内部类,枚举,泛型)
    一、内部类内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。当一个类的内部,包含一个完整的事物,且......
  • JavaSE-day01(面向对象高级)
    面向对象的核心:设计对象来处理数据,解决问题。一、静态static读作静态,可以用来修饰成员变量,也能修饰成员方法。1.1static修饰成员变量Java中的成员变量按有无static修......
  • Java面向对象
    方法:packagestudy1;publicclassDemo1{ publicstaticvoidmain(String[]args){ //调用方法 doubleaa=sjx(10,2); System.out.println("三角形的面积......
  • 面向对象
    面向对象面向对象是基于面向过程的编程思想面向对象的思想特点是一种更符合我们思考习惯的思想把复杂的事情简单化让我们从执行者变成了指挥者注意:如何让我们的操作更......
  • 面向对象
    面向对象1.初识面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面对过程适合处理一些较为简单的问题。面向对象思想物以类聚,分类的思维模式,思考问......
  • 面向对象类图的六种关系(继承、实现、依赖、关联、聚合、组合)
    进行面向对象设计时,经常需要根据场景抽象出一些类,梳理各个类之间的关系,实现一个“低耦合,高内聚”的系统。下面通过学生、班级、教师、学校这些角色和场景,说明面向对象中,类......
  • UML-面向对象与软件建模
    面向对象与软件建模面向对象技术以问题域中出现的问题为中心,进行模型化设计和开发基础知识:对象与类封装泛化(继承)多态性多态的两种模式:方法的多态性方法的重......
  • 面向对象基础
    一、面向对象基础1、面向对象思想简介软件编程就是将我们的思维转变成计算机能够识别语言的一个过程什么是面向过程?自上而下顺序执行,逐步求精其程序结构是按功能......