一、类的继承
1、子类没有权限调用父类中被修饰为private的方法,只可以调用父类中修饰为public或protected的成员方法。
https://blog.youkuaiyun.com/StrongbyTime/article/details/86466872
2、class Test2 extends Test{
继承父类
3、当重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变。
4、调用构造方法的顺序,首先是顶级父类,然后是上一级父类,最后是子类。
5、在实例化子类对象时,父类无参构造方法将被自动调用,但有参构方法并不能被自动调用,只能依赖于super关键字显式地调用父类的构造方法。
二、Object类
1、它是所有类的父亲。
2、Object类中主要包括clone()、finalize()、equals()、toString()。后两个是常用的。
3、在自定义的类中使用equals()方法比较时,将返回false,因为equals()方法的默认实现是使用“==”运算符比较两个对象的引用地址,而不是比较对象的内容,所以想要真正做到比较两个对象的内容,要自定义类中重写equals()方法。
三、对象类型的转换
1、向上转型:由于向上转型是从一个较具体的类到较抽象的类的转换,所以它总是安全的
class Quadrangle{ //四边形类
public static void draw(Quadrangle q){ //四边形类中的方法
//SomeSentence
}
}
public class Parallelogram extends Quadrangle{ //平行四边形类,继承了四边形类
public static void main(String args[]){
Parallelogram p=new Parallelogram();
draw(p);//调用父类方法
}
}
就在这时,我问了大哥,我突然醒悟。
父类
public class animal {
private String a ="父类的Private变量";//父类私有变量属性,不能被子类调用
public void eat() {
System.out.println("动物吃饭。");
}
public void sleep() {
System.out.println("动物睡觉。");
}
}
子类
public class Dog extends animal {
public static void main(String[] args) {
Dog dog = new Dog();
//子类可调用父类的public方法
dog.eat();
dog.sleep();
}
//子类重写的父类的方法
public void sleep() {
System.out.println("小狗睡觉");
}
}
子类对父类的继承
这之中的知识点:
面向对象的三大特点:继承、多态、抽象
四种修饰符的访问权限级别
重载与重写的区别
还知道了,放在同一个package里面,一个文件只能有一个public class。
我直接醒悟
2、方法的重载
方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。
public class OverLoadTest{
public static int add(int a,int b){ //定义一个方法
return a+b;
}
//定义与第一个方法相同名称,参数类型不同的方法
public static double add(double a,double b){
return a+b;
}
//定义一个与第一个方法参数个数不同的方法
public static int add(int a){
return a;
}
public static int add(int a,double b){
return 1;
}
public static int add(double a,int b){
return 1;
}
public static void main(String args[]){
System.out.println("调用add(int,int)方法:"+add(1,2));
System.out.println("调用add(double,double)方法"+add(2.1,3.3));
}
}
输出的结果是:
调用add(int,int)方法:3
调用add(double,double)方法:5.4
3、不定长参数方法
public static int add(int...a){ //定义不定长参数方法
int s=0;
for(int i=0;i<a.length;i++)//根据参数个数做循环操作
s+=a[i]; //将每个参数累加
return s; 将计算结果返回
}
public static void main(String args[]){
System.out.println(add(1,5,6,8,4,2,6));
}
算就完事了。