今日整理:
1.什么是继承?它有什么好处和坏处?
继承:当子类中的共同属性(成员变量)和共同行为(成员方法)抽取出来,
派生成一个新的类的过程就叫继承,派生出来的新的类就是父类。
2.两个类若是有继承关系,如何进行访问(变量和方法)?
继承访问变量:
①.如果方法内部有变量,优先使用方法内部的变量(局部变量);
②.如果子类中有这个变量,方法内部没有这个变量,在方法内部使用子类的成员变量;
③.如果子类没有这个变量,方法内部也没有这个变量,在方法内部使用父类的变量;
④.如果父类中也没有这个变量,编译报错。
继承访问成员方法:
①.如果子类中有这个方法,优先使用子类中的方法;
②.如果子类中没有这个方法,使用父类中的方法;
③.如果父类中没有方法, 编译报错;
④.如果子类方法和父类方法重名,使用super来区分,super调用父类方法。
继承访问构造方法:
①.this(参数)调用子类的有参构造方法;
②.super()调用父类的的无参数的构造方法,这是默认的;
③.super(参数)调用父类的有参的构造方法;
④.this(),super()必须放在构造方法的第一行;
⑤.this(),super()不能同时使用。
3.什么是方法的重写?它有什么需要注意的地方?
重写:在子类中,定义一个和父类中一模一样的方法,这个操作就叫做重写。
注意事项:
①.怎么判断子类中的方法是否时重写的方法,可以使用注解@Override
如果编译没有报错,就是重写的方法,编译报错了,不是重写的方法
②.父类中私有的方法不能够重写。
③.子类重写父类的方法,那么子类重写方法的访问权限修饰符要大于父类
public >= protected => 默认
4.今天讲了哪些修饰符?各有什么作用和特点?
权限修饰符:
public修饰符:被声明的public的类,方法,构造方法和接口能够被其他类访问。
protected修饰符:当子类与父类在同一个包中时,被protected声明的变量,方法和构造方法能被同一个包中的其他类访问。
当子类和父类不在同一个包中时,在子类中,子类实例可以访问其他从父类继承而来的protected方法,但不能访问父类实例的protected方法。
private修饰符:被private声明的方法,变量和构造方法只能被所属的类访问,并且类和接口不能声明为private。声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。
默认修饰符:使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。
非权限修饰符:
final修饰符:可以修饰类,修饰方法,修饰变量。
如果final修饰的变量是基本类型:基本类型的值不能修改
如果final修饰的变量是引用类型:引用类型的地址值不能改变(引用类型的值可以改变)
在继承时,如果父类使用了final:
1.如果这个类被final修饰,那个类不能被继承
2.如果这个类中 的变量被final修饰了,那个变量可以被继承,不能做修改
3.如果这个类中 的方法被final修饰了,那个方法也不能被继承
static修饰符:可以修饰成员变量,成员方法和代码块。
凡是类中被static修饰的变量,代码快,只会初始化一次,提高代码的执行效率
在普通方法里面:
直接使用非静态变量和非静态方法,也直接使用静态变量和静态方法
在静态方法里面:
不能直接使用非静态变量和非静态方法,可以直接使用静态变量和静态方法。
调用静态变量和方法时,可以使用对象来调用,可以使用类名直接调用。
5.聊聊今天你觉得重要的点.
1.关于继承的概念,以及继承的使用,包括继承访问变量,继承访问成员方法,继承访问构造方法等,以及继承执行的顺序。
2.this和super的区别:
this表示当前类对象的引用,this可以在任意类中使用。在无参构造方法里面,不可以直接使用this();
super表示父类对象的引用,在子类中,可以通过使用super操作父类的成员变量,成员方法和构造方法。在无参构造方法里面,可以直接使用super();
3.方法的重写:在子类中,定义一个和父类中一模一样的方法,这个操作就叫方法的重写。
优点:保证子类方法执行时的独立性。
可以使用注解@Override判断子类中的方法是否时重写的方法。
4.public,private,protected,默认修饰符的作用,区别。
5.final修饰符的使用,static修饰符的使用。
|