Java(九) 接口、继承、多态

一、类的继承

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));
}

算就完事了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值