面试题笔记

来源:互联网 发布:linux用户权限管理 编辑:程序博客网 时间:2024/05/21 11:00

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


0 0
原创粉丝点击