day06
修饰符 本类 同一个包中的类 子类 其他类 public 可以访问 可以访问 可以访问 可以访问 protected 可以访问 可以访问 可以访问 不能访问 默认 可以访问 可以访问 不能访问 不能访问 private 可以访问 不能访问 不能访问 不能访问
package cn.tedu.day06;
package cn.tedu.day06;
/**
抽象类的应用大数据基础:大数据框架共性:属性:姓名,年龄,性别行为:讲课抽象类的应用1、抽象方法,用abstract修饰,只有方法的定义,没有方法的具体实现2、抽象类,abstract修饰,包含抽象方法的类,必须是抽象类;(不包含抽象方法的类,也可以升级为抽象类)3、抽象类是不能被实例化的4、抽象类是需要被继承的,继承了抽象类的子类,要么重写所有的抽象方法;要么变普通类为抽象类@author Administrator3、意义封装了子类中所共有的属性和行为:——————代码重用为所有的子类体提供一种统一的类型——————向上造型可以包含抽象方法,为所有的子类提供统一的入口扩展:设计规则,将所有的子类/派生类所共有的属性和行为,抽到父类/超类中所有的子类行为都一样,设计为普通类所有子类的行为都不一样,设计为抽象方法 * */public class AbstractDemo {
public static void main(String[] args) { DataBaseTeacher dat = new DataBaseTeacher(); dat.name = "canglaoshi"; dat.teach(); DataTeacher da = new DataTeacher(); da.name = "xiaoze"; da.teach(); }}
//父类
abstract class Teacher{
String name; int age; char gender; //讲课 public abstract void teach();}
class DataBaseTeacher extends Teacher{
@Override public void teach() { System.out.println("基础课程" ); }}
class DataTeacher extends Teacher{
String name; @Override public void teach() { System.out.println("框架"); }}
package cn.tedu.day06;
/**
企业中 *项目经理 *姓名,工号,工资,工作内容,奖金 *程序员 *姓名,工号,工资,工作内容@author Administrator * */public class AbstractTest {
public static void main(String[] args) { Staff st = new Staff(); st.name = "小白"; st.id = 111; st.salary = 8000.00; st.Working(); Boss bs = new Boss(); bs.name = "sb"; bs.id = 222; bs.salary = 20000.00; bs.Working(); bs.Jiangjin = "500"; System.out.println("姓名:" + bs.name + "工号" + bs.id +"工资" + bs.salary ); }}
abstract class Info{
String name; int id; double salary; public abstract void Working();}
class Staff extends Info{
String work; @Override public void Working() { }}
class Boss extends Info{
String Jiangjin; String work1; @Override public void Working() { }}
package cn.tedu.day06;
public class InterfaceDemo {
public static void main(String[] args) { Mayun m = new Mayun(); //Code.codeNumber m.code(); m.studyCode(); }}
interface Code{
public static final int codeNumber = 10000; public abstract void code();}
class LaoBan{
}
class Programmers{
public void studyCode() { System.out.println("敲代码"); }}
class Mayun extends Programmers implements Code{
@Override public void code() { }}
package cn.tedu.day06;
/**
足球运动员和教练篮球运动员和教练现在足球运动员和教练去德国学习,需要学习德语@author Administrator分析:从下而上1、接口不能被实例化,2、接口可以多是实现,但是继承为单继承3、接口中是可以定义方法的,方法也有固定的修饰词:public abstract4、子类必须覆盖接口中所有的抽象方法,子类才可以实例话,否则子类是一个抽象类5、接口中是可以定义变量的,但是变量有固定的修饰符:public static也称为常量,值不发生改变final1、本身是一个修饰符,可以用于修饰类,成员变量,成员方法2、被final修饰的类,它是不能被继承,也不能有子类3、final修饰的类,不能被重写4、final修饰的变量,不可以被修改,是常量 */public class InterfaceTest {
public static void main(String[] args) { FootBall ft = new FootBall(); ft.name = "pipi"; ft.age = 20; ft.eat(); ft.study(); ZuqiuTeacher zqls = new ZuqiuTeacher(); zqls.name = "wangyu"; zqls.age = 35; ft.eat(); ft.study(); }}
abstract class Person{
String name; int age; public abstract void eat(); public abstract void sleep();}
interface Study{
public abstract void study();}
abstract class SportMan extends Person{
@Override public void eat() { }}
class FootBall extends SportMan implements Study{
public void learn() { } @Override public void sleep() { // TODO Auto-generated method stub } @Override public void study() { System.out.println("学习德语"); }}
class BasketBall extends SportMan{
public void guanLan() { } @Override public void sleep() { // TODO Auto-generated method stub }}
abstract class Jiaolian extends Person{
}
class ZuqiuTeacher extends Jiaolian implements Study{
@Override public void eat() { // TODO Auto-generated method stub } @Override public void sleep() { // TODO Auto-generated method stub } @Override public void study() { // TODO Auto-generated method stub }}
class LanqiuTeacher extends Jiaolian{
@Override public void eat() { // TODO Auto-generated method stub } @Override public void sleep() { // TODO Auto-generated method stub }}
package cn.tedu.day06;
/**
static,静态变量1、由static修饰属于类中,存储在方法区中,只有一份;通过类名,来进行调用;所有的对象所共享的资源的时候(图片,视频,音频等)2、静态方法static修饰:属于类,存储在方法区,只有一份通过类名,来调用何时用?方法的操作只与参数相关,但是与对象无关3、静态代码块属于类中,在类被加载期间进行自动调用,类只能被加载一次,所以静态代码块也只执行一次初始化,加载静态资源的时候调用@author Administrator * */public class Super{
public static void main(String[] args) { Too t1 = new Too(); Too t2 = new Too(); Too t3 = new Too(); System.out.println(t1.id + "," +t2.id + "," + t3.id + ","+Too.i); }}
class Too{
int id; static int i = 0; public Too(){ id = i++; }}