this与super的各有几种用法?
this: 表示当前对象的引用,常用于形参或局部变量与类的成员变量同名的情形
表示当前对象
调用当前类的构造方法
super: 访问当前类的直接父类
表示调用父类的构造方法
子类对象实例化的具体过程是什么?
1为子类对象分配内存空间,对域变量进行默认初始化
2绑定构造方法,将new对象中的参数传递给构造方法的形式参数
3调用this或super语句,注意二者必居其一,但不能同时存在
4进行实例变量的显示初始化操作
5执行当前构造方法体中的程序代码
类的域变量和方法中定义的局部变量在初始化上有何区别?
类的域变量在类初始化的时候就开始创建了,而方法中的变量是在调用到该方法时,才会为该变量创建。
模仿形成抽象类的过程,自选角度,形成一个自己的抽象类,并在程序的类继承和引用中体现抽象类的作用
abstract class Animal{
protected int age;
public Animal(int a){
age=a;
}
abstract public void getage();
}
class dog extends Animal{
public dog(int a){
super(a);
}
public void getage(){
System.out.println("My age is"+age);
}
}
public class test{
public stastic void main(String[] args){
dog d=new dog(10);
d.getage();
}
}
接口有什么用?自己定义一个接口,并给出实现类和使用类
接口相当于一种标准,相当于功能的说明者,使用者按照接口使用,实现者按照接口实现,当实现者内部发生变化时,只要接口不发生变化,使用者就不必要更改其代码。
interface TV{ //接口
public abstrat void startup();//启动
public abstrat void turnup();//调高音量
public abstrat void turndown();//调低音量
public abstrat void endup();//关闭
}
class Chai implements TV{ //实现类
public void startup()
{System.out.println("开机");
}//启动
public void turnup()
{System.out.println("已调高音量");
}//调高音量
public void turndown()
{System.out.println("已调低音量");
}//调低音量
public void endup()
{System.out.println("关机");
}//关闭
}
public class consumer{//使用类
public static void main(String[] args){
TV t=new Chai();
t.startup();
t.turnup();
t,turndown();
t.endup();
}
}
抽象类和接口的异同点是什么
| 抽象类| 接口 |
共同点|–二者都具有抽象方法,但都不能实例,|但都可以有自己的声明并能引用子类或实现类对象–|
不同点| 可以有属性变量,成员方法可以有具体方法,必须有子类继承,扩展性弱 | 不能有属性变量,只能由静态常量,如果有成员方法全部为抽象方法,必须有实现类实现,扩展性强 |
引用比较方法有哪些
1 equals方法
2 使用"=="
3 instance of
内部类的作用是什么?什么情况下使用匿名内部类?
1内部类可以直接访问外部类的所有属性,包括修饰符为private的属性或方法
2内部类可以实现多重继承
匿名内部类的使用条件:
1只用到类的一个实例
2类在定义后马上用到
3类非常小
什么是数据隐藏?如何证明子类对父类同名方法进行重新定义,只能是方法的覆盖,而不是方法的隐藏?
在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏了父类的成员变量。