1.java只有单继承,多重继承,没有多继承。(不可能有多个爹,但可以有个爷爷)
2.当子类对象找属性时,先去找父亲,没有这个属性,通过父亲找爷爷。
3.如果父类没有无参构造方法,那么子类只能通过super()来访问父类构造方法,属性,方 法。super(构造方法) super.sex();属性
4.重写:方法的重载,发生在继承类中;注:参数列表,返回类型必须相同;访辈分权限
越低,权限越大。父亲不能重写子类,静态不能被重写。
5.
面试题:1.java中重写发生在(Override),发生在字父类中。
重载发生在(overload)一个类中。
2.参数列表:
重载:必须不同;
重写:必须相同;
3.返回值类型:
重载:与返回值类型无关
重写:返回值类型必须一致;
4.访问权限:
重载:与权限无关
重写:子>父
5.异常处理:
重载:无关;
重写:范围更加精准,不许有新的异常。
6. 抽象类:abstract class 类名 {
Public abstract void add();//必须在这个类中;只用来声明未实现,没有{}
}
注:1.抽象类不能被直接实例化,不能直接用new,但是在子类创建时,会被 jvm实例化;
2.一个抽象类必学被子类继承,被继承的子类如果不是抽象类,则必须 重写抽象类中的全部方法。
3.不能用private修饰
4.如果继承抽象类,那么必须实现所有抽象方法。否者改为抽象
6.接口:只有抽象方法和全局变量
Interface 名称{
全局变量 不用加Public static final
抽象方法 可以不用加Public abstract
}
7.接口的实现:与继承不同能有多个爹,但不用都实现
Class 子类 implements 父接口1 .。。。
8.接口都是抽象的,所以可以多继承
Interface SDSD extends a,b{
}
9.多态(对象的多种形态,父类的用,之类的new)
10.Object:是所有没身份类的爹
例子:
public class BookTest {
public static void main(String[] args) {
Book b1 = new Book("童话",210);
b1.detail();
Book b2 = new Book("小红帽",10);
b2.detail();
Book b3 = new Book("白雪公主",200);
b3.detail();
}
}
class Book {
private String title;
private int pageNum;
Book(){}
Book(String title,int pageNum){
setTitle(title);
setPageNum(pageNum);
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
if(pageNum < 200) {
System.out.println("页数不能少于200,已给予默认值200。");
this.pageNum = 200;
}else {
this.pageNum = pageNum;
}
}
void detail() {
System.out.println("书名:" + title + ",页数:" + pageNum);
}
}
package com.atkaikeba;
public class JavaStudentTest {
public static void main(String[] args) {
JavaStudent.setCompany("开课吧");
JavaStudent.setSubject("JavaEE");
JavaStudent s1 = new JavaStudent("张三",20,'男',"打篮球");
JavaStudent s2 = new JavaStudent("李四",22,'女',"跑步");
s1.info();
s2.info();
}
}
class JavaStudent {
private String name;
private int age;
private char sex;
private String hobby;
//静态变量属于类的变量
private static String company;
private static String subject;
public JavaStudent() {
super();
// TODO Auto-generated constructor stub
}
public JavaStudent(String name, int age, char sex, String hobby) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.hobby = hobby;
}
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 char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public static String getCompany() {
return company;
}
public static void setCompany(String company) {
JavaStudent.company = company;
}
public static String getSubject() {
return subject;
}
public static void setSubject(String subject) {
JavaStudent.subject = subject;
}
void info() {
System.out.println("名字:" + name + ",年龄:" + age + ",性别:" + sex + ",爱好:" + hobby + ",公司:" + company + ",学科:" + subject);
}
}