类和对象的区别:

类是抽象的,模板,对象是根据模板的样子具体刻画出来的

类是对象的蓝图,对象是类的实例化,实例是对象的另一种说法,设计一个类时,要考虑有这个类创建的对象知道什么实例变量(状态),能做什么方法(行为)。

点操作符允许访问一个对象的状态和行为dog.Barking();

main的作用:

1.测试类

2.启动应用

子类与超类:

子类继承自超类,如果超类具有某一项功能,那么子类也会有(不用特殊的在子类声明),如果子类的某一项功能(方法)与超类稍有不同,那么可以子类通过覆盖超类的方法实现子类方法的特殊性。

覆盖:

使用 @Override 注解可以告诉编译器你是故意重写父类的方法,这个注解可以帮助检查重写的方法签名是否正确,避免因为参数的数量,类型,顺序不同而出错。

重写的注意事项:

  • 子类重写的方法必须与父类的方法在名称参数列表(包括参数的数量、类型、顺序)完全相同。
  • 子类重写的返回类型必须与父类相同,或者是父类返回类型的子类型。
class Parent{
public Object Method(){
        return new Object();
    }
}
class Child extends Parent{
     public String Method(){
         return "wqewqewq";
     }
}

     

  • 子类重写的方法访问权限不能比父类方法更严格。可以扩大访问权限,但不能缩小。
  • 异常抛出方面,子类方法可以抛出父类异常或者是更具体的子类异常,但不能是父类没抛出过的异常。
  • super()可以用于,有自己的方法版本,但也想调用父类的方法内容,就可以用super将父类的方法内容引过来
class Parent{
public void Method(){
        System.out,println("67573123");
    }
   
}
class Child extends Parent{
     public void Method(){
         super();
         System.out,println("67573123");
     }
}
  • 静态方法是类级别的方法,它们并不遵循多态性,所以没有办法被重写。
  • 如果父类的方法被标记了final,那么不能被重写,final表示该方法的实现不可更改。

 

class Parent{
public final void Method(){
        System.out.println("67573123");
    }
}

class Child extends Parent{
    //会报错,因为无法重写
     public void Method(){
         System.out,println("67573123");
     }
}

表示子类需要改变或扩展它继承的某一个方法的行为时,可以重新定义这个方法。

子类可以改变方法具体的实现细节,而保持方法的名称和参数列表不变。

 @Override
    public void Barking(){
        System.out.println("旺旺");
    }

构造方法不能覆盖:构造方法是特殊的方法,它不能被重写。每个类都有自己的构造方法,并且子类必须通过 super() 显式调用父类的构造方法,除非父类没有默认构造方法。

 public Dog(int n, String m) {
        super(n, m);
    }

重载:

Overload

在一个类中,有多个方法同名,但是参数不同,具体功能也不相同的情况

public void Barking(){
        System.out.println("嗷呜~~~");
    }
    public void Barking(String str){
        System.out.println(str);
    }

重载的返回类型,访问级别都可以不相同,只是同名了而已,和继承多态没有任何关系。

super() and this()

super()用于子类调用父类的构造方法,通常在子类构造器中调用父类构造器进行初始化

this()只能用在构造器内部,用于调用当前类的另一个构造方法,必须处于第一行代码;

 

posted on 2025-02-07 22:21  fafrkvit  阅读(10)  评论(0)    收藏  举报