09-修饰符,object,抽象,接口
- Object : java中所有类的父类(超类,基类)
- java.lang —> 系统默认导入
- toString() : 输出的是对象的地址 info
- equals() : 比较的是内容(重写了equals方法的作用是设置你想要的比较内容,补充协议的话比较的内存地址)
public class ObjectTest {
public static void main(String[] args) {
String name = "起源";
String name2 = "起源";
//创建对象
Student s1 = new Student("可乐", 12, "男", 101);
Student s2 = new Student("可乐", 12, "男", 101);
System.out.println(s1); //相当于s1.toString()
System.out.println(s1.toString());
System.out.println(s1==s2); //比较的是地址
System.out.println(s1.equals(s2)); //比较的是内容
System.out.println(name == name2); //比较的内容
System.out.println(name.equals(name2)); //比较的内容
}
}
- 抽象类:
- 如果一个类中含有抽象方法,那么这个类就一定是个抽象类
- 抽象类可以没有抽象方法
- 抽象类不可以被实例化
- 抽象类中有构造方法,该构造方法是给子类创建对象用的
- 非抽象类可以继承一个抽象类,但是必须要重写类中的抽象方法
- final不能修饰抽象类
- 抽象类的语法: class关键字前加abstract
- 抽象方法: [修饰符] abstract 返回值类型 方法名();
public abstract class AbstractDemo {
public void m1(){
System.out.println("wo shi beifang wo chi mian ");
}
public abstract void m2(); //抽象方法 //硬性标准
public AbstractDemo(){ //无参构造
}
}
- 接口:
- 语法: 修饰符 Interface 接口名{ }
- 接口也是引用数据类型 , 可以等同看作是一个类
- 接口中只能有常量,抽象方法
- 接口其实是一个特殊的抽象类,特殊在接口是完全抽象的
- 接口中没有构造方法,不能被实例化
- 类是单季承,但是接口与接口之间是多继承
- 接口与类之间多实现,一个类可以实现多个接口
- 实现的关键字是: implements
- 是一个非抽线类实现一个接口时,必须实现接口中的所有方法
public class InterfaceTest implements Inter04,Inter03,Inter02{
@Override
public void m1() {
// TODO Auto-generated method stub
}
@Override
public void m4() {
// TODO Auto-generated method stub
}
}
package com.tz.interfacetest;
/**
* 接口
* @author Administrator
*
*/
public interface Inter01 extends Inter02,Inter03,Inter04{
public static final int A = 23;
int b = 12; //默认加final
public void m1();
}
interface Inter02{
public void m1();
}
interface Inter03{
public void m1();
}
interface Inter04{
public void m4();
}
-
访问修饰符修饰属性和方法: 本类 同包子类 同包中其他类 不同包子类 不同其他类
public 1 1 1 1 1
protected 1 1 1 1 0
default 1 1 1 0 0
private 1 0 0 0 0
public class Father { //父类
private String name; //被private修饰的属性只能在本类中使用
int age; //范围只在本包中
protected double money; //同包和不同的子类
public String gender; //公开访问
public void show(){
System.out.println("私有的:"+this.name);
System.out.println("默认的"+age);
System.out.println("受保护的:"+money);
System.out.println("公开的"+gender);
}
}