A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

@author  作者(如:张三)
@version 版本(如:1.0)
@param 参数

重写:override:要存在子父类关系;子类定义了跟父类完全相同的方法:返回值类型 方法名 形参列表完全相同,跟父类相同
重载:overload:在一个类中,定义:方法名相同,参数列表不完全相同。重载跟返回值类型无关。

代码块分类:
        局部代码块:在某个方法中,或者某个代码块中;作用:限制变量的声明周期
        main(String args){
                {
                   int num = 10;
                   System.out.println(num);
                }
        System.out.println("hello");
        //num变量已经不存在,可以释放内存
                {
                   int num = 20;
                   System.out.println(num);
                }

        }
       
        构造代码块:定义在类体中;执行:每次实例化这个类的对象时,都会被执行一次。作用
一般也是用于类的初始化操作,跟构造方法的作用一样。区别:构造代码块不能带参数。
                注意:如果跟构造方法同时存在,先执行构造代码块。
        class Student{
                String name;
                //构造代码块
                {
                        System.out.println("Student的构造代码块。。。。");
                }
        }

        静态代码块:定义在类体中,使用static修饰的一个代码块;
                  执行:第一次使用这个类的时候,会被执行一次,之后就不在被执行。
                 作用:用于初始化静态成员,它可以访问成员变量,但仍然只能访问静态成员变量。、
                注意:执行顺序   静态代码块-------构造代码块-----构造方法
        static{
       
                System.out.println();
        }


多态必须要有继承关系;
多态是指父类类型的变量存储了子类对象的引用:
创建对象的格式:
        假设 Person父类   Student子类   
        Student st = new Student();
        Person  p  = new Student();
        Person  p  = new Person();
子类的成员覆盖父类的成员时(Person  p  = new Student();):
1.成员变量:编译看左边(父类必须要有,否则编译错误),运行看左边(运行时,打印的值是父类的);
2.成员方法:编译看左边(父类必须要有,否则编译错误),运行看右边(运行时,打印的值是子类的);跟对象走的
3.静态方法:编译看左边(父类必须要有,否则编译错误),运行看左边(运行时,打印的值是父类的)。跟类走的
               
多态中父类的引用不能访问子类的特有属性,但是可以通过强制转换转换成它所存储的子类对象的引用。

Class Animal;  Class Cat  extends Animal;  Class Dog extends Animal
判断关键字:instanceof(只能用于引用类型的引用)格式:
            变量  instanceof  某类类型
Animal a = new Cat();
if(a instanceof Cat){
        Cat a = (Cat)a;
        c.eat();
}
返回:boolean值:如果为true:表示左边的变量是右边的某类类型,可以安全强制转换。
                如果为false:表示右边的变量不是右边的某类类型。



abstract关键字不能和哪些关键字共存??
1.private:abstract方法就是需要被子类重写,一个private的方法不能被子类重写
2.final:同上
3.static:一个静态的方法,在没有对象的情况下,就会被分配空间;而一个抽象的方法没有方法体,无法被分配空间。所以,一个抽象方法不能被定义成静态。


接口(interface):
1.如果一个类中包含的全部都是抽象方法,可以将这个类定义为接口。
2.接口中的成员变量,必须被public static final 修饰,如果不写,JVM会自动添加,如                    :public static final int num = 10;
          成员方法,必须被public abstract 修饰,如果不写,JVM会自动添加。
3.类实现接口的关键字:implements。     如:class Cat implements IAnimal{   }
4.接口继承接口:extends,允许多继承。  如:interface A extends B,C{   }


当类名做为形式参数时,可以将本类或者本类的子类的对象作为实际参数传入到方法中运行,因为null可以作为任何的引用类型当做参数传递,所以需要判断输入对象不为null才可以编译运行。
当接口作为方法的形式参数时,只能将接口的子类对象作为实参传入,同样需要判断是否为null以提高代码的健壮性。

方法的返回值是一个类类型,它可以返回:1.此类对象的引用 2.此类子类对象的引用 3.null 同理为了提高代码的健壮性,需要使用if(i!=null){i.show}判断之后调用方法。

1 个回复

倒序浏览
顶一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马