您的位置:首页 > 职场人生

面试题笔记

2016-03-11 13:16 453 查看
(1):下面是记录了一道面试题,判断下面语句的错误,当然我贴出来的都是正确的,就是有点不太理解,敲点代码重新理解下

(1):c++中的虚类相当于java里面的抽象类

(2):c++中没有接口的概念,与之对应的是纯虚类,对应的是java中的接口

(3):纯虚函数和虚函数的区别在于前者不包含定义,而后者可以包含函数体

(4):抽象类:类中至少有一个方法是抽象方法,则该类就是抽象类了

(5):接口:类中的方法全部都是抽象方法

***(表示有点头晕了,)java中的接口与抽象类到底TM有什么区别,抽象类又有什么用?这些都是值得我们思考的。

(2):接口与抽象类的区别

(1):抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法;

(2):抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的

(3):接口中不能含有静态代码块及静态方法,而抽象类可以有静态代码块和静态方法

(4):一个类只能继承一个抽象类,而一个类却可以实现多个接口。

(5):抽象类是对一种事物进行抽象,即对类抽象,而接口是对行为的抽象,抽象类是对整个类进行抽象,包括属性,方法。接口是对行为进行了抽象。

(3):下面是一个抽象类的实际运用

假设学生和工人都去介绍下自己,他们介绍的内容是不一样的,相当于他们都有一个say()的方法,内容由子类的对象决定。
package day02;

abstract class Person{  //定义一个抽象类
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void say() {//人说话是一个集体的功能{
System.out.println(this.getContent());
}
public abstract String getContent();//说话的内容由子类决定,这个是一个抽象方法,只声明,没有具体的实现
};
class Student extends Person{

private float score;
public Student(String name,int age,float score){
super(name,age);
this.score = score;
}
public String getContent(){
return "学生信息--->姓名:"+super.getName()+";年龄:"+super.getAge()+
";成绩:"+this.score;
}
};

class Worker extends Person{
private float salary;
public Worker(String name,int age,float salary){
super(name,age);
this.salary = salary;
}
public String getContent(){
return "工人信息--->姓名:"+super.getName()+";年龄:"+super.getAge()+
";工资:"+this.salary;
}
};
public class demo04 {
public static void main(String[] args) {
Person p1 = new Student("张三",20,90);
Person p2 = new Worker("李四",30,3000);
p1.say();
p2.say();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: